Merge pull request #13670 from donaldsharp/coverity_99

Coverity 99
This commit is contained in:
Donatas Abraitis 2023-06-05 22:33:55 +03:00 committed by GitHub
commit fecc953b3c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 27 additions and 90 deletions

View File

@ -659,9 +659,6 @@ bool community_list_match(struct community *com, struct community_list *list)
struct community_entry *entry; struct community_entry *entry;
for (entry = list->head; entry; entry = entry->next) { for (entry = list->head; entry; entry = entry->next) {
if (entry->any)
return entry->direct == COMMUNITY_PERMIT;
if (entry->style == COMMUNITY_LIST_STANDARD) { if (entry->style == COMMUNITY_LIST_STANDARD) {
if (community_include(entry->u.com, COMMUNITY_INTERNET)) if (community_include(entry->u.com, COMMUNITY_INTERNET))
return entry->direct == COMMUNITY_PERMIT; return entry->direct == COMMUNITY_PERMIT;
@ -681,9 +678,6 @@ bool lcommunity_list_match(struct lcommunity *lcom, struct community_list *list)
struct community_entry *entry; struct community_entry *entry;
for (entry = list->head; entry; entry = entry->next) { for (entry = list->head; entry; entry = entry->next) {
if (entry->any)
return entry->direct == COMMUNITY_PERMIT;
if (entry->style == LARGE_COMMUNITY_LIST_STANDARD) { if (entry->style == LARGE_COMMUNITY_LIST_STANDARD) {
if (lcommunity_match(lcom, entry->u.lcom)) if (lcommunity_match(lcom, entry->u.lcom))
return entry->direct == COMMUNITY_PERMIT; return entry->direct == COMMUNITY_PERMIT;
@ -705,9 +699,6 @@ bool lcommunity_list_exact_match(struct lcommunity *lcom,
struct community_entry *entry; struct community_entry *entry;
for (entry = list->head; entry; entry = entry->next) { for (entry = list->head; entry; entry = entry->next) {
if (entry->any)
return entry->direct == COMMUNITY_PERMIT;
if (entry->style == LARGE_COMMUNITY_LIST_STANDARD) { if (entry->style == LARGE_COMMUNITY_LIST_STANDARD) {
if (lcommunity_cmp(lcom, entry->u.lcom)) if (lcommunity_cmp(lcom, entry->u.lcom))
return entry->direct == COMMUNITY_PERMIT; return entry->direct == COMMUNITY_PERMIT;
@ -724,9 +715,6 @@ bool ecommunity_list_match(struct ecommunity *ecom, struct community_list *list)
struct community_entry *entry; struct community_entry *entry;
for (entry = list->head; entry; entry = entry->next) { for (entry = list->head; entry; entry = entry->next) {
if (entry->any)
return entry->direct == COMMUNITY_PERMIT;
if (entry->style == EXTCOMMUNITY_LIST_STANDARD) { if (entry->style == EXTCOMMUNITY_LIST_STANDARD) {
if (ecommunity_match(ecom, entry->u.ecom)) if (ecommunity_match(ecom, entry->u.ecom))
return entry->direct == COMMUNITY_PERMIT; return entry->direct == COMMUNITY_PERMIT;
@ -746,9 +734,6 @@ bool community_list_exact_match(struct community *com,
struct community_entry *entry; struct community_entry *entry;
for (entry = list->head; entry; entry = entry->next) { for (entry = list->head; entry; entry = entry->next) {
if (entry->any)
return entry->direct == COMMUNITY_PERMIT;
if (entry->style == COMMUNITY_LIST_STANDARD) { if (entry->style == COMMUNITY_LIST_STANDARD) {
if (community_include(entry->u.com, COMMUNITY_INTERNET)) if (community_include(entry->u.com, COMMUNITY_INTERNET))
return entry->direct == COMMUNITY_PERMIT; return entry->direct == COMMUNITY_PERMIT;
@ -781,28 +766,18 @@ struct community *community_list_match_delete(struct community *com,
val = community_val_get(com, i); val = community_val_get(com, i);
for (entry = list->head; entry; entry = entry->next) { for (entry = list->head; entry; entry = entry->next) {
if (entry->any) { if ((entry->style == COMMUNITY_LIST_STANDARD) &&
(community_include(entry->u.com,
COMMUNITY_INTERNET) ||
community_include(entry->u.com, val))) {
if (entry->direct == COMMUNITY_PERMIT) { if (entry->direct == COMMUNITY_PERMIT) {
com_index_to_delete[delete_index] = i; com_index_to_delete[delete_index] = i;
delete_index++; delete_index++;
} }
break; break;
} } else if ((entry->style == COMMUNITY_LIST_EXPANDED) &&
community_regexp_include(entry->reg, com,
else if ((entry->style == COMMUNITY_LIST_STANDARD) i)) {
&& (community_include(entry->u.com,
COMMUNITY_INTERNET)
|| community_include(entry->u.com, val))) {
if (entry->direct == COMMUNITY_PERMIT) {
com_index_to_delete[delete_index] = i;
delete_index++;
}
break;
}
else if ((entry->style == COMMUNITY_LIST_EXPANDED)
&& community_regexp_include(entry->reg, com,
i)) {
if (entry->direct == COMMUNITY_PERMIT) { if (entry->direct == COMMUNITY_PERMIT) {
com_index_to_delete[delete_index] = i; com_index_to_delete[delete_index] = i;
delete_index++; delete_index++;
@ -836,12 +811,6 @@ static bool community_list_dup_check(struct community_list *list,
if (entry->direct != new->direct) if (entry->direct != new->direct)
continue; continue;
if (entry->any != new->any)
continue;
if (entry->any)
return true;
switch (entry->style) { switch (entry->style) {
case COMMUNITY_LIST_STANDARD: case COMMUNITY_LIST_STANDARD:
if (community_cmp(entry->u.com, new->u.com)) if (community_cmp(entry->u.com, new->u.com))
@ -910,7 +879,6 @@ int community_list_set(struct community_list_handler *ch, const char *name,
entry = community_entry_new(); entry = community_entry_new();
entry->direct = direct; entry->direct = direct;
entry->style = style; entry->style = style;
entry->any = (str ? false : true);
entry->u.com = com; entry->u.com = com;
entry->reg = regex; entry->reg = regex;
entry->seq = seqnum; entry->seq = seqnum;
@ -987,7 +955,8 @@ struct lcommunity *lcommunity_list_match_delete(struct lcommunity *lcom,
for (i = 0; i < lcom->size; i++) { for (i = 0; i < lcom->size; i++) {
ptr = lcom->val + (i * LCOMMUNITY_SIZE); ptr = lcom->val + (i * LCOMMUNITY_SIZE);
for (entry = list->head; entry; entry = entry->next) { for (entry = list->head; entry; entry = entry->next) {
if (entry->any) { if ((entry->style == LARGE_COMMUNITY_LIST_STANDARD) &&
lcommunity_include(entry->u.lcom, ptr)) {
if (entry->direct == COMMUNITY_PERMIT) { if (entry->direct == COMMUNITY_PERMIT) {
com_index_to_delete[delete_index] = i; com_index_to_delete[delete_index] = i;
delete_index++; delete_index++;
@ -995,18 +964,10 @@ struct lcommunity *lcommunity_list_match_delete(struct lcommunity *lcom,
break; break;
} }
else if ((entry->style == LARGE_COMMUNITY_LIST_STANDARD) else if ((entry->style ==
&& lcommunity_include(entry->u.lcom, ptr)) { LARGE_COMMUNITY_LIST_EXPANDED) &&
if (entry->direct == COMMUNITY_PERMIT) { lcommunity_regexp_include(entry->reg, lcom,
com_index_to_delete[delete_index] = i; i)) {
delete_index++;
}
break;
}
else if ((entry->style == LARGE_COMMUNITY_LIST_EXPANDED)
&& lcommunity_regexp_include(entry->reg, lcom,
i)) {
if (entry->direct == COMMUNITY_PERMIT) { if (entry->direct == COMMUNITY_PERMIT) {
com_index_to_delete[delete_index] = i; com_index_to_delete[delete_index] = i;
delete_index++; delete_index++;
@ -1125,7 +1086,6 @@ int lcommunity_list_set(struct community_list_handler *ch, const char *name,
entry = community_entry_new(); entry = community_entry_new();
entry->direct = direct; entry->direct = direct;
entry->style = style; entry->style = style;
entry->any = (str ? false : true);
entry->u.lcom = lcom; entry->u.lcom = lcom;
entry->reg = regex; entry->reg = regex;
entry->seq = seqnum; entry->seq = seqnum;
@ -1246,7 +1206,6 @@ int extcommunity_list_set(struct community_list_handler *ch, const char *name,
entry = community_entry_new(); entry = community_entry_new();
entry->direct = direct; entry->direct = direct;
entry->style = style; entry->style = style;
entry->any = false;
if (ecom) if (ecom)
entry->config = ecommunity_ecom2str( entry->config = ecommunity_ecom2str(
ecom, ECOMMUNITY_FORMAT_COMMUNITY_LIST, 0); ecom, ECOMMUNITY_FORMAT_COMMUNITY_LIST, 0);

View File

@ -65,9 +65,6 @@ struct community_entry {
/* Standard or expanded. */ /* Standard or expanded. */
uint8_t style; uint8_t style;
/* Any match. */
bool any;
/* Sequence number. */ /* Sequence number. */
int64_t seq; int64_t seq;

View File

@ -20863,16 +20863,13 @@ static const char *community_list_config_str(struct community_entry *entry)
{ {
const char *str; const char *str;
if (entry->any) if (entry->style == COMMUNITY_LIST_STANDARD)
str = ""; str = community_str(entry->u.com, false, false);
else { else if (entry->style == LARGE_COMMUNITY_LIST_STANDARD)
if (entry->style == COMMUNITY_LIST_STANDARD) str = lcommunity_str(entry->u.lcom, false, false);
str = community_str(entry->u.com, false, false); else
else if (entry->style == LARGE_COMMUNITY_LIST_STANDARD) str = entry->config;
str = lcommunity_str(entry->u.lcom, false, false);
else
str = entry->config;
}
return str; return str;
} }
@ -20895,13 +20892,8 @@ static void community_list_show(struct vty *vty, struct community_list *list)
: "expanded", : "expanded",
list->name); list->name);
} }
if (entry->any) vty_out(vty, " %s %s\n", community_direct_str(entry->direct),
vty_out(vty, " %s\n", community_list_config_str(entry));
community_direct_str(entry->direct));
else
vty_out(vty, " %s %s\n",
community_direct_str(entry->direct),
community_list_config_str(entry));
} }
} }
@ -21260,13 +21252,8 @@ static void lcommunity_list_show(struct vty *vty, struct community_list *list)
: "expanded", : "expanded",
list->name); list->name);
} }
if (entry->any) vty_out(vty, " %s %s\n", community_direct_str(entry->direct),
vty_out(vty, " %s\n", community_list_config_str(entry));
community_direct_str(entry->direct));
else
vty_out(vty, " %s %s\n",
community_direct_str(entry->direct),
community_list_config_str(entry));
} }
} }
@ -21562,13 +21549,8 @@ static void extcommunity_list_show(struct vty *vty, struct community_list *list)
: "expanded", : "expanded",
list->name); list->name);
} }
if (entry->any) vty_out(vty, " %s %s\n", community_direct_str(entry->direct),
vty_out(vty, " %s\n", community_list_config_str(entry));
community_direct_str(entry->direct));
else
vty_out(vty, " %s %s\n",
community_direct_str(entry->direct),
community_list_config_str(entry));
} }
} }

View File

@ -1122,7 +1122,6 @@ static int mgmt_txn_create_config_batches(struct mgmt_txn_req *txn_req,
} }
free(xpath); free(xpath);
xpath = NULL;
} }
cmtcfg_req->cmt_stats->last_batch_cnt = num_chgs; cmtcfg_req->cmt_stats->last_batch_cnt = num_chgs;
@ -2542,7 +2541,7 @@ int mgmt_txn_notify_be_cfgdata_reply(
{ {
struct mgmt_txn_ctx *txn; struct mgmt_txn_ctx *txn;
struct mgmt_txn_be_cfg_batch *cfg_btch; struct mgmt_txn_be_cfg_batch *cfg_btch;
struct mgmt_commit_cfg_req *cmtcfg_req = NULL; struct mgmt_commit_cfg_req *cmtcfg_req;
txn = mgmt_txn_id2ctx(txn_id); txn = mgmt_txn_id2ctx(txn_id);
if (!txn || txn->type != MGMTD_TXN_TYPE_CONFIG) if (!txn || txn->type != MGMTD_TXN_TYPE_CONFIG)