summaryrefslogtreecommitdiffstats
path: root/src/plugins/vrrp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/vrrp')
-rw-r--r--src/plugins/vrrp/node.c3
-rw-r--r--src/plugins/vrrp/vrrp_api.c6
2 files changed, 8 insertions, 1 deletions
diff --git a/src/plugins/vrrp/node.c b/src/plugins/vrrp/node.c
index b819919e428..34d082ec2ff 100644
--- a/src/plugins/vrrp/node.c
+++ b/src/plugins/vrrp/node.c
@@ -617,7 +617,8 @@ vrrp_input_inline (vlib_main_t * vm, vlib_node_runtime_t * node,
}
/* Mandatory - packet must be complete */
- if (b0->current_length < sizeof (*vrrp0) + vrrp0->n_addrs * addr_len)
+ if (b0->current_length < sizeof (*vrrp0) +
+ ((u32) vrrp0->n_addrs) * addr_len)
{
error0 = VRRP_ERROR_INCOMPLETE_PKT;
goto trace;
diff --git a/src/plugins/vrrp/vrrp_api.c b/src/plugins/vrrp/vrrp_api.c
index 3b9c256b263..d2badc0345b 100644
--- a/src/plugins/vrrp/vrrp_api.c
+++ b/src/plugins/vrrp/vrrp_api.c
@@ -211,6 +211,8 @@ vl_api_vrrp_vr_dump_t_handler (vl_api_vrrp_vr_dump_t * mp)
u32 sw_if_index;
reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
sw_if_index = htonl (mp->sw_if_index);
@@ -340,6 +342,8 @@ vl_api_vrrp_vr_peer_dump_t_handler (vl_api_vrrp_vr_peer_dump_t * mp)
vrrp_vr_key_t vr_key;
reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
vr_key.sw_if_index = ntohl (mp->sw_if_index);
@@ -456,6 +460,8 @@ vl_api_vrrp_vr_track_if_dump_t_handler (vl_api_vrrp_vr_track_if_dump_t * mp)
vrrp_vr_t *vr;
reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
if (!mp->dump_all)
{