From: Ole Troan Date: Mon, 13 Nov 2017 07:14:07 +0000 (+0100) Subject: NAT: Buufer overflow for memcpy() X-Git-Tag: v18.04-rc0~257 X-Git-Url: https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commitdiff_plain;h=192267d490e6f791073236e6e5b303c051cbab48 NAT: Buufer overflow for memcpy() Change-Id: I11d1f9507d429ad8b25e9873272ede231623e622 Signed-off-by: Ole Troan --- diff --git a/src/plugins/nat/nat64.c b/src/plugins/nat/nat64.c index 936ea9e9988..0054310d18b 100644 --- a/src/plugins/nat/nat64.c +++ b/src/plugins/nat/nat64.c @@ -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; } }