summaryrefslogtreecommitdiffhomepage
path: root/src/dhcpv6-ia.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/dhcpv6-ia.c')
-rw-r--r--src/dhcpv6-ia.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/dhcpv6-ia.c b/src/dhcpv6-ia.c
index de44581..1476e02 100644
--- a/src/dhcpv6-ia.c
+++ b/src/dhcpv6-ia.c
@@ -596,7 +596,10 @@ static void update(struct interface *iface)
}
struct dhcpv6_assignment *border = list_last_entry(&iface->ia_assignments, struct dhcpv6_assignment, head);
- border->assigned = 1 << (64 - minprefix);
+ if (minprefix <= 32 || minprefix > 64)
+ border->assigned = 1U << (64 - minprefix);
+ else
+ border->assigned = 0;
bool change = len != (int)iface->ia_addr_len;
for (int i = 0; !change && i < len; ++i)