From 9268b5823fa7a16195f638e5b1f9c54b430f2f3c Mon Sep 17 00:00:00 2001 From: jiangxiaoming Date: Mon, 22 Jun 2020 09:06:16 +0800 Subject: ip: set ip4 mask for ip_copy and ip_set when dealing with ip4 type Type: fix Signed-off-by: jiangxiaoming Change-Id: I3ace7dfe3ddacb4f7fa7a974a2ffe2b3cf902ff9 --- src/vnet/ip/ip.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/vnet/ip/ip.c b/src/vnet/ip/ip.c index 38e53fdef75..bceb529ee6f 100644 --- a/src/vnet/ip/ip.c +++ b/src/vnet/ip/ip.c @@ -81,7 +81,10 @@ void ip_copy (ip46_address_t * dst, ip46_address_t * src, u8 is_ip4) { if (is_ip4) - dst->ip4.as_u32 = src->ip4.as_u32; + { + ip46_address_mask_ip4 (dst); + dst->ip4.as_u32 = src->ip4.as_u32; + } else clib_memcpy_fast (&dst->ip6, &src->ip6, sizeof (ip6_address_t)); } @@ -90,7 +93,10 @@ void ip_set (ip46_address_t * dst, void *src, u8 is_ip4) { if (is_ip4) - dst->ip4.as_u32 = ((ip4_address_t *) src)->as_u32; + { + ip46_address_mask_ip4 (dst); + dst->ip4.as_u32 = ((ip4_address_t *) src)->as_u32; + } else clib_memcpy_fast (&dst->ip6, (ip6_address_t *) src, sizeof (ip6_address_t)); -- cgit 1.2.3-korg