aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorJordan Augé <jordan.auge+fdio@cisco.com>2019-10-09 12:54:08 +0200
committerJordan Augé <jordan.auge+fdio@cisco.com>2019-10-09 12:54:08 +0200
commit1e0e7377bb2854b49b5e52ec5a39b818640f644b (patch)
treecef1a95a241de9ddf7c326179d51ce671019b2d1 /lib
parentd61668ec9ee63307eef161e197e09981f327b984 (diff)
[HICN-311] Incorrect copying of ip_prefix_t data & uninitialized bytes causes invalid writes
Change-Id: Ia171dac11f65dab295b3523222145215f21a6f4f Signed-off-by: Jordan Augé <jordan.auge+fdio@cisco.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/src/compat.c4
-rw-r--r--lib/src/name.c3
2 files changed, 4 insertions, 3 deletions
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;