Fix handling of DHCPv6 replies containing unrequested IA_NA/IA_PD options
authorVladislav Grishenko <themiron@mail.ru>
Tue, 17 Feb 2015 17:28:45 +0000 (22:28 +0500)
committerVladislav Grishenko <themiron@mail.ru>
Tue, 17 Feb 2015 17:28:45 +0000 (22:28 +0500)
src/dhcpv6.c

index 1786688..6ae6f7a 100644 (file)
@@ -947,6 +947,10 @@ static int dhcpv6_handle_reply(enum dhcpv6_msg orig, _unused const int rc,
                                && olen > -4 + sizeof(struct dhcpv6_ia_hdr)) {
                        struct dhcpv6_ia_hdr *ia_hdr = (void*)(&odata[-4]);
 
+                       if ((na_mode == IA_MODE_NONE && otype == DHCPV6_OPT_IA_NA) ||
+                           (pd_mode == IA_MODE_NONE && otype == DHCPV6_OPT_IA_PD))
+                               continue;
+
                        // Test ID
                        if (ia_hdr->iaid != htonl(1) && otype == DHCPV6_OPT_IA_NA)
                                continue;