networkd: ndisc - fix token support

Fixes CID#1338680. Thanks to Thomas Andersen.
This commit is contained in:
Tom Gundersen
2015-11-17 13:14:36 +01:00
parent 6506063f8f
commit fb84d8966e

View File

@@ -75,7 +75,7 @@ static void ndisc_prefix_autonomous_handler(sd_ndisc *nd, const struct in6_addr
address->family = AF_INET6;
address->in_addr.in6 = *prefix;
if (in_addr_is_null(AF_INET6, (const union in_addr_union *) &link->network->ipv6_token) == 0)
memcpy(&address->in_addr.in6 + 8, &link->network->ipv6_token + 8, 8);
memcpy(((char *)&address->in_addr.in6) + 8, ((char *)&link->network->ipv6_token) + 8, 8);
else {
/* see RFC4291 section 2.5.1 */
address->in_addr.in6.__in6_u.__u6_addr8[8] = link->mac.ether_addr_octet[0];