From: Hans Dedecker Date: Fri, 11 Jan 2019 09:25:12 +0000 (+0100) Subject: dhcpv6: avoid parsing unncessary IAs X-Git-Url: http://git.openwrt.org/?a=commitdiff_plain;h=ce83a23b16dadd567babf74b2f8164cfcd327a58;hp=b079733bee3a616c765383be35656693627716be;p=project%2Fodhcp6c.git dhcpv6: avoid parsing unncessary IAs Don't parse IA_NA/IA_PD options if either na_mode or pd_mode is set to IA_MODE_NONE Signed-off-by: Hans Dedecker --- diff --git a/src/dhcpv6.c b/src/dhcpv6.c index 857cbe1..5378010 100644 --- a/src/dhcpv6.c +++ b/src/dhcpv6.c @@ -862,7 +862,8 @@ static int dhcpv6_handle_advert(enum dhcpv6_msg orig, const int rc, dhcpv6_for_each_option(opt, end, otype, olen, odata) { if (orig == DHCPV6_MSG_SOLICIT && - (otype == DHCPV6_OPT_IA_PD || otype == DHCPV6_OPT_IA_NA) && + ((otype == DHCPV6_OPT_IA_PD && pd_mode != IA_MODE_NONE) || + (otype == DHCPV6_OPT_IA_NA && na_mode != IA_MODE_NONE)) && olen > -4 + sizeof(struct dhcpv6_ia_hdr)) { struct dhcpv6_ia_hdr *ia_hdr = (void*)(&odata[-4]); dhcpv6_parse_ia(ia_hdr, odata + olen + sizeof(*ia_hdr));