summaryrefslogtreecommitdiffstats
path: root/vnet/vnet/ipsec/ipsec_output.c
diff options
context:
space:
mode:
authorDamjan Marion <damarion@cisco.com>2016-08-16 11:27:02 +0200
committerFlorin Coras <florin.coras@gmail.com>2016-08-17 08:21:42 +0000
commit3f54b18e055a606dd0ade78a370eebb758d8be7d (patch)
treea1e449d7f324401534130f377c83afb7efee8dea /vnet/vnet/ipsec/ipsec_output.c
parent607de1a0638fa45db49295f9ed51a7f9a5e38706 (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.c8
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)