aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/mfib
diff options
context:
space:
mode:
authorNeale Ranns <nranns@cisco.com>2018-12-21 07:00:56 -0800
committerFlorin Coras <florin.coras@gmail.com>2018-12-21 15:59:08 +0000
commitb7778b6310b57a13626041ed8613cea37d41c9ca (patch)
tree226264b28f9adb355eb655271af7b3cc7bda36bd /src/vnet/mfib
parentd2bad81b0ddaa7420b2f767e1a8dc078c0eadbcb (diff)
MFIB: coverity fixes
Change-Id: I5c1bc498f7299e175070eb288e40f8d037c9be3a Signed-off-by: Neale Ranns <nranns@cisco.com>
Diffstat (limited to 'src/vnet/mfib')
-rw-r--r--src/vnet/mfib/ip6_mfib.c2
-rw-r--r--src/vnet/mfib/mfib_entry.c21
2 files changed, 16 insertions, 7 deletions
diff --git a/src/vnet/mfib/ip6_mfib.c b/src/vnet/mfib/ip6_mfib.c
index d47887be699..aa9fdb9a98b 100644
--- a/src/vnet/mfib/ip6_mfib.c
+++ b/src/vnet/mfib/ip6_mfib.c
@@ -438,7 +438,7 @@ ip6_mfib_table_lookup (const ip6_mfib_t *mfib,
{
len = table->prefix_lengths_in_search_order[i];
- ASSERT(len >= 0 && len <= 256);
+ ASSERT(len <= 256);
IP6_MFIB_MK_KEY(mfib, grp, src, len, key);
rv = clib_bihash_search_inline_2_40_8(&table->ip6_mhash, &key, &value);
diff --git a/src/vnet/mfib/mfib_entry.c b/src/vnet/mfib/mfib_entry.c
index ac37665fb72..79d2f9a50a3 100644
--- a/src/vnet/mfib/mfib_entry.c
+++ b/src/vnet/mfib/mfib_entry.c
@@ -633,16 +633,25 @@ mfib_entry_stack (mfib_entry_t *mfib_entry,
{
/*
* for exclusive routes the source provided a replicate DPO
- * we we stashed inthe special path list with one path
+ * which we stashed in the special path list with one path,
* so we can stack directly on that.
*/
ASSERT(1 == vec_len(ctx.next_hops));
- dpo_stack(DPO_MFIB_ENTRY, dp,
- &mfib_entry->mfe_rep,
- &ctx.next_hops[0].path_dpo);
- dpo_reset(&ctx.next_hops[0].path_dpo);
- vec_free(ctx.next_hops);
+ if (NULL != ctx.next_hops)
+ {
+ dpo_stack(DPO_MFIB_ENTRY, dp,
+ &mfib_entry->mfe_rep,
+ &ctx.next_hops[0].path_dpo);
+ dpo_reset(&ctx.next_hops[0].path_dpo);
+ vec_free(ctx.next_hops);
+ }
+ else
+ {
+ dpo_stack(DPO_MFIB_ENTRY, dp,
+ &mfib_entry->mfe_rep,
+ drop_dpo_get(dp));
+ }
}
}
else