summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/svm/svmtool.c1
-rw-r--r--src/vnet/classify/classify_api.c8
-rw-r--r--src/vnet/ethernet/node.c4
3 files changed, 6 insertions, 7 deletions
diff --git a/src/svm/svmtool.c b/src/svm/svmtool.c
index 61f8372e4e0..60859674298 100644
--- a/src/svm/svmtool.c
+++ b/src/svm/svmtool.c
@@ -265,6 +265,7 @@ svm_existing_region_map_nolock (void *root_arg, svm_map_region_args_t * a)
svm_pop_heap (oldheap);
return rp;
}
+ region_unlock (root_rp);
return 0;
}
diff --git a/src/vnet/classify/classify_api.c b/src/vnet/classify/classify_api.c
index 4b182ca9a0a..7c08528f58a 100644
--- a/src/vnet/classify/classify_api.c
+++ b/src/vnet/classify/classify_api.c
@@ -101,11 +101,9 @@ static void vl_api_classify_pcap_lookup_table_t_handler
u32 mask_len = ntohl (mp->mask_len);
u32 sw_if_index = ntohl (mp->sw_if_index);
- if (n_skip > 5
- || 0 <= n_match || n_match > 5
- || mask_len != n_match * sizeof (u32x4)
- || sw_if_index == ~0
- || sw_if_index >= vec_len (cm->classify_table_index_by_sw_if_index))
+ if (n_skip > 5 || n_match == 0 || n_match > 5 ||
+ mask_len != n_match * sizeof (u32x4) || sw_if_index == ~0 ||
+ sw_if_index >= vec_len (cm->classify_table_index_by_sw_if_index))
{
rv = VNET_API_ERROR_INVALID_VALUE;
goto out;
diff --git a/src/vnet/ethernet/node.c b/src/vnet/ethernet/node.c
index efe7290d19a..f4f84f8ca45 100644
--- a/src/vnet/ethernet/node.c
+++ b/src/vnet/ethernet/node.c
@@ -1340,7 +1340,7 @@ ethernet_input_inline (vlib_main_t * vm,
}
else
{
- if (ei->flags & ETHERNET_INTERFACE_FLAG_STATUS_L3)
+ if (ei && (ei->flags & ETHERNET_INTERFACE_FLAG_STATUS_L3))
goto skip_dmac_check01;
dmacs[0] = *(u64 *) e0;
@@ -1584,7 +1584,7 @@ ethernet_input_inline (vlib_main_t * vm,
}
else
{
- if (ei->flags & ETHERNET_INTERFACE_FLAG_STATUS_L3)
+ if (ei && ei->flags & ETHERNET_INTERFACE_FLAG_STATUS_L3)
goto skip_dmac_check0;
dmacs[0] = *(u64 *) e0;