From 1e0e7377bb2854b49b5e52ec5a39b818640f644b Mon Sep 17 00:00:00 2001 From: Jordan Augé Date: Wed, 9 Oct 2019 12:54:08 +0200 Subject: [HICN-311] Incorrect copying of ip_prefix_t data & uninitialized bytes causes invalid writes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Ia171dac11f65dab295b3523222145215f21a6f4f Signed-off-by: Jordan Augé --- lib/src/compat.c | 4 ++-- lib/src/name.c | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/src/compat.c b/lib/src/compat.c index d76e17a6d..68f761ac0 100644 --- a/lib/src/compat.c +++ b/lib/src/compat.c @@ -344,7 +344,7 @@ hicn_packet_get_locator (hicn_format_t format, const hicn_header_t * h, return HICN_LIB_ERROR_NOT_IMPLEMENTED; } - memcpy (prefix->address.buffer, locator, ip_prefix_len(prefix)); + memcpy (prefix->address.buffer, locator, ip_address_len(&prefix->address, prefix->family)); return HICN_LIB_ERROR_NONE; } @@ -370,7 +370,7 @@ hicn_packet_set_locator (hicn_format_t format, hicn_header_t * h, return HICN_LIB_ERROR_INVALID_PARAMETER; } - memcpy (locator, prefix->address.buffer, ip_prefix_len(prefix)); + memcpy (locator, prefix->address.buffer, ip_address_len(&prefix->address, prefix->family)); return HICN_LIB_ERROR_NONE; } diff --git a/lib/src/name.c b/lib/src/name.c index 1f1051522..a19971d49 100644 --- a/lib/src/name.c +++ b/lib/src/name.c @@ -95,7 +95,8 @@ hicn_name_create_from_prefix (const ip_prefix_t * prefix, u32 id, return HICN_LIB_ERROR_NOT_IMPLEMENTED; } - memcpy (name->buffer, prefix->address.buffer, ip_prefix_len (prefix)); + memcpy (name->buffer, prefix->address.buffer, + ip_address_len(&prefix->address, prefix->family)); *(u32 *) (name->buffer + name->len) = id; return HICN_LIB_ERROR_NONE; -- cgit 1.2.3-korg