aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-x[-rw-r--r--]src/vnet/ip/lookup.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/vnet/ip/lookup.c b/src/vnet/ip/lookup.c
index 95f36d41a86..ec9a1f97ac9 100644..100755
--- a/src/vnet/ip/lookup.c
+++ b/src/vnet/ip/lookup.c
@@ -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