summaryrefslogtreecommitdiff
path: root/src/ippool.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ippool.c')
-rw-r--r--src/ippool.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/ippool.c b/src/ippool.c
index 58a0d281..52446cec 100644
--- a/src/ippool.c
+++ b/src/ippool.c
@@ -258,7 +258,11 @@ void __connman_ippool_newaddr(int index, const char *address,
if (is_private_address(start) == FALSE)
return;
- mask = ~(0xffffffff >> prefixlen);
+ if (prefixlen >= 32)
+ mask = 0xffffffff;
+ else
+ mask = ~(0xffffffff >> prefixlen);
+
start = start & mask;
end = start | ~mask;