aboutgitcodebugslistschat
path: root/dhcpv6.c
diff options
context:
space:
mode:
authorStefano Brivio <sbrivio@redhat.com>2021-07-26 07:11:33 +0200
committerStefano Brivio <sbrivio@redhat.com>2021-07-26 07:11:33 +0200
commit0be49ccd93186600e40b8bffe867d18c4d16366a (patch)
tree3a8c34b3724a23dbfc9b272e77e109dfbb5ef645 /dhcpv6.c
parent60dee2705b3a9a8b1c3302b94b098c2d07b41a85 (diff)
downloadpasst-0be49ccd93186600e40b8bffe867d18c4d16366a.tar
passt-0be49ccd93186600e40b8bffe867d18c4d16366a.tar.gz
passt-0be49ccd93186600e40b8bffe867d18c4d16366a.tar.bz2
passt-0be49ccd93186600e40b8bffe867d18c4d16366a.tar.lz
passt-0be49ccd93186600e40b8bffe867d18c4d16366a.tar.xz
passt-0be49ccd93186600e40b8bffe867d18c4d16366a.tar.zst
passt-0be49ccd93186600e40b8bffe867d18c4d16366a.zip
dhcpv6: Drop bogus option length test while checking for not-on-link IA_NA
dhcpv6_opt() already reflects consumed bytes on the remaining length, and that we're not exceeding the message length. At this point, the remaining length is usually zero. While at it, drop a useless __packed__ attribute that triggers a gcc warning. Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Diffstat (limited to 'dhcpv6.c')
-rw-r--r--dhcpv6.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/dhcpv6.c b/dhcpv6.c
index be6d9b1..31ef66d 100644
--- a/dhcpv6.c
+++ b/dhcpv6.c
@@ -61,7 +61,7 @@ struct opt_hdr {
#define STR_NOTONLINK "Prefix not appropriate for link."
uint16_t l;
-} __attribute__((__packed__));
+};
#if __BYTE_ORDER == __BIG_ENDIAN
# define OPT_SIZE_CONV(x) (x)
@@ -334,9 +334,6 @@ ia_ta:
while ((ia = dhcpv6_opt(ia, ia_type, &__len))) {
size_t ia_len = ntohs(ia->l);
- if (ia_len > __len)
- return NULL;
-
if (ia_type == OPT_IA_NA) {
struct opt_ia_na *opts = (struct opt_ia_na *)ia + 1;