struct iovec iov = {&reconf_msg, sizeof(reconf_msg) - 128 + assign->clid_len};
md5_ctx_t md5;
- uint8_t secretbytes[16];
- memcpy(secretbytes, assign->key, sizeof(secretbytes));
+ uint8_t secretbytes[64];
+ memset(secretbytes, 0, sizeof(secretbytes));
+ memcpy(secretbytes, assign->key, sizeof(assign->key));
for (size_t i = 0; i < sizeof(secretbytes); ++i)
secretbytes[i] ^= 0x36;
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;
}
}