VPP-684.Add ip which mask length exceeding upper limit,ping segmentfault 68/6068/2
authorflyingeagle23 <wang.hui56@zte.com.cn>
Thu, 6 Apr 2017 08:47:46 +0000 (16:47 +0800)
committerflyingeagle23 <wang.hui56@zte.com.cn>
Fri, 7 Apr 2017 03:16:48 +0000 (11:16 +0800)
Change-Id: I2d1c5e4dbdcab2a81d6c88801183ca0bbc83e1d9
Signed-off-by: flyingeagle23 <wang.hui56@zte.com.cn>
src/vnet/ip/lookup.c [changed mode: 0644->0755]

old mode 100644 (file)
new mode 100755 (executable)
index 95f36d4..ec9a1f9
@@ -73,7 +73,10 @@ ip_interface_address_add_del (ip_lookup_main_t * lm,
   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