diff options
-rw-r--r-- | src/dhcpv6-ia.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/dhcpv6-ia.c b/src/dhcpv6-ia.c index 2de9710..42268e5 100644 --- a/src/dhcpv6-ia.c +++ b/src/dhcpv6-ia.c @@ -949,7 +949,8 @@ static size_t build_ia(uint8_t *buf, size_t buflen, uint16_t status, size_t addrlen = (a->managed) ? (size_t)a->managed_size : iface->addr6_len; for (size_t i = 0; i < addrlen; ++i) { - if (!valid_addr(&addrs[i], now)) + if (!valid_addr(&addrs[i], now) || + !valid_prefix_length(a, addrs[i].prefix)) continue; struct in6_addr addr = addrs[i].addr.in6; |