diff options
author | Damjan Marion <damarion@cisco.com> | 2016-08-16 11:27:02 +0200 |
---|---|---|
committer | Florin Coras <florin.coras@gmail.com> | 2016-08-17 08:21:42 +0000 |
commit | 3f54b18e055a606dd0ade78a370eebb758d8be7d (patch) | |
tree | a1e449d7f324401534130f377c83afb7efee8dea /vnet/vnet/ipsec/ipsec_output.c | |
parent | 607de1a0638fa45db49295f9ed51a7f9a5e38706 (diff) |
Fix coverity issues in IPSec code, fixes VPP-189
Change-Id: I4e43606884ebad9a84abda779b82417192727ef3
Signed-off-by: Damjan Marion <damarion@cisco.com>
Diffstat (limited to 'vnet/vnet/ipsec/ipsec_output.c')
-rw-r--r-- | vnet/vnet/ipsec/ipsec_output.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/vnet/vnet/ipsec/ipsec_output.c b/vnet/vnet/ipsec/ipsec_output.c index e72890d1239..c27e8e6a0a5 100644 --- a/vnet/vnet/ipsec/ipsec_output.c +++ b/vnet/vnet/ipsec/ipsec_output.c @@ -103,6 +103,9 @@ ipsec_output_policy_match (ipsec_spd_t * spd, u8 pr, u32 la, u32 ra, u16 lp, ipsec_policy_t *p; u32 *i; + if (!spd) + return 0; + vec_foreach (i, spd->ipv4_outbound_policies) { p = pool_elt_at_index (spd->policies, *i); @@ -159,6 +162,9 @@ ipsec_output_ip6_policy_match (ipsec_spd_t * spd, ipsec_policy_t *p; u32 *i; + if (!spd) + return 0; + vec_foreach (i, spd->ipv6_outbound_policies) { p = pool_elt_at_index (spd->policies, *i); @@ -365,7 +371,7 @@ ipsec_output_node_fn (vlib_main_t * vm, from += 1; n_left_from -= 1; - if (PREDICT_FALSE ((last_next_node_index != next_node_index))) + if (PREDICT_FALSE ((last_next_node_index != next_node_index) || f == 0)) { /* if this is not 1st frame */ if (f) |