VPP-684.Add ip which mask length exceeding upper limit,ping segmentfault
Change-Id: I2d1c5e4dbdcab2a81d6c88801183ca0bbc83e1d9
Signed-off-by: flyingeagle23 <wang.hui56@zte.com.cn>
diff --git a/src/vnet/ip/lookup.c b/src/vnet/ip/lookup.c
old mode 100644
new mode 100755
index 95f36d4..ec9a1f9
--- a/src/vnet/ip/lookup.c
+++ b/src/vnet/ip/lookup.c
@@ -73,7 +73,10 @@
a = p ? pool_elt_at_index (lm->if_address_pool, p[0]) : 0;
/* Verify given length. */
- if ((a && (address_length != a->address_length)) || (address_length == 0))
+ if ((a && (address_length != a->address_length)) ||
+ (address_length == 0) ||
+ (lm->is_ip6 && address_length > 128) ||
+ (!lm->is_ip6 && address_length > 32))
{
vnm->api_errno = VNET_API_ERROR_ADDRESS_LENGTH_MISMATCH;
return clib_error_create