diff --git a/src/dhcp.c b/src/dhcp.c index c11675d..00145bc 100644 --- a/src/dhcp.c +++ b/src/dhcp.c @@ -651,7 +651,7 @@ int address_allocate(struct dhcp_context *context, /* hash hwaddr: use the SDBM hashing algorithm. Seems to give good dispersal even with similarly-valued "strings". */ for (j = 0, i = 0; i < hw_len; i++) - j += hwaddr[i] + (j << 6) + (j << 16) - j; + j = hwaddr[i] + (j << 6) + (j << 16) - j; for (pass = 0; pass <= 1; pass++) for (c = context; c; c = c->current) diff --git a/src/dhcp6.c b/src/dhcp6.c index 93a359e..56eb0da 100644 --- a/src/dhcp6.c +++ b/src/dhcp6.c @@ -420,7 +420,7 @@ struct dhcp_context *address6_allocate(struct dhcp_context *context, unsigned c j = rand64(); else for (j = iaid, i = 0; i < clid_len; i++) - j += clid[i] + (j << 6) + (j << 16) - j; + j = clid[i] + (j << 6) + (j << 16) - j; for (pass = 0; pass <= plain_range ? 1 : 0; pass++) for (c = context; c; c = c->current)