NAT: Buufer overflow for memcpy() 96/9396/1
authorOle Troan <ot@cisco.com>
Mon, 13 Nov 2017 07:14:07 +0000 (08:14 +0100)
committerOle Troan <ot@cisco.com>
Mon, 13 Nov 2017 07:14:37 +0000 (08:14 +0100)
Change-Id: I11d1f9507d429ad8b25e9873272ede231623e622
Signed-off-by: Ole Troan <ot@cisco.com>
src/plugins/nat/nat64.c

index 936ea9e..0054310 100644 (file)
@@ -798,8 +798,7 @@ nat64_compose_ip6 (ip6_address_t * ip6, ip4_address_t * ip4, u32 fib_index)
 
   if (prefix)
     {
-      memset (ip6, 0, 16);
-      memcpy (ip6, &p->prefix, p->plen);
+      clib_memcpy (ip6, &p->prefix, sizeof (ip6_address_t));
       switch (p->plen)
        {
        case 32:
@@ -839,7 +838,7 @@ nat64_compose_ip6 (ip6_address_t * ip6, ip4_address_t * ip4, u32 fib_index)
     }
   else
     {
-      memcpy (ip6, well_known_prefix, 16);
+      clib_memcpy (ip6, well_known_prefix, sizeof (ip6_address_t));
       ip6->as_u32[3] = ip4->as_u32;
     }
 }