From 0be49ccd93186600e40b8bffe867d18c4d16366a Mon Sep 17 00:00:00 2001 From: Stefano Brivio Date: Mon, 26 Jul 2021 07:11:33 +0200 Subject: [PATCH] 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 --- dhcpv6.c | 5 +---- 1 file changed, 1 insertion(+), 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;