X-Git-Url: https://git.decadent.org.uk/gitweb/?p=odhcp6c.git;a=blobdiff_plain;f=src%2Fdhcpv6.c;h=bf62b29767233e4dd77b828fa345c26796085b74;hp=ec42b32c54a430fd9e119e4f34cab600c339463b;hb=9c7c654cb2d5ac6ac536f603cd5a9372416e91da;hpb=53db18b200aa7d5d065e8cc8f2672f077d6d324b diff --git a/src/dhcpv6.c b/src/dhcpv6.c index ec42b32..bf62b29 100644 --- a/src/dhcpv6.c +++ b/src/dhcpv6.c @@ -657,10 +657,12 @@ static bool dhcpv6_response_is_valid(const void *buf, ssize_t len, continue; md5_ctx_t md5; - uint8_t serverhash[16], secretbytes[16], hash[16]; + uint8_t serverhash[16], secretbytes[64], hash[16]; memcpy(serverhash, r->key, sizeof(serverhash)); memset(r->key, 0, sizeof(r->key)); - memcpy(secretbytes, reconf_key, sizeof(secretbytes)); + + memset(secretbytes, 0, sizeof(secretbytes)); + memcpy(secretbytes, reconf_key, sizeof(reconf_key)); for (size_t i = 0; i < sizeof(secretbytes); ++i) secretbytes[i] ^= 0x36;