summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOle Troan <ot@cisco.com>2017-11-13 08:14:07 +0100
committerOle Troan <ot@cisco.com>2017-11-13 08:14:37 +0100
commit192267d490e6f791073236e6e5b303c051cbab48 (patch)
tree60dae555f518e2628df86c4de14c6c462898201a
parentde5fec943ab12933696db5b0abf287dea335e312 (diff)
NAT: Buufer overflow for memcpy()
Change-Id: I11d1f9507d429ad8b25e9873272ede231623e622 Signed-off-by: Ole Troan <ot@cisco.com>
-rw-r--r--src/plugins/nat/nat64.c5
1 files changed, 2 insertions, 3 deletions
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;
}
}