Replace IN6_ARE_ADDR_EQUAL by memcmp to avoid unaligneds
authorSteven Barth <steven@midlink.org>
Wed, 19 Feb 2014 12:34:10 +0000 (13:34 +0100)
committerSteven Barth <steven@midlink.org>
Wed, 19 Feb 2014 12:34:10 +0000 (13:34 +0100)
src/dhcpv6-ia.c

index cca6664..b1931ef 100644 (file)
@@ -719,13 +719,13 @@ static size_t append_reply(uint8_t *buf, size_t buflen, uint16_t status,
                                                if (ia->type == htons(DHCPV6_OPT_IA_PD)) {
                                                        addr.s6_addr32[1] |= htonl(a->assigned);
 
-                                                       if (IN6_ARE_ADDR_EQUAL(&p->addr, &addr) &&
+                                                       if (!memcmp(&p->addr, &addr, sizeof(addr)) &&
                                                                        p->prefix == a->length)
                                                                found = true;
                                                } else {
                                                        addr.s6_addr32[3] = htonl(a->assigned);
 
-                                                       if (IN6_ARE_ADDR_EQUAL(&n->addr, &addr))
+                                                       if (!memcmp(&n->addr, &addr, sizeof(addr)))
                                                                found = true;
                                                }
                                        }