in-addr-util: make in_addr_prefix_nth() refuse prefixlen larger than maximum size

This commit is contained in:
Yu Watanabe
2021-02-17 22:57:37 +09:00
parent 518b6da5d3
commit 7b6b05cff9
+3 -2
View File
@@ -222,8 +222,9 @@ int in_addr_prefix_nth(int family, union in_addr_union *u, unsigned prefixlen, u
if (family == AF_INET) {
uint32_t c, n, t;
if (prefixlen > 32)
prefixlen = 32;
return -ERANGE;
c = be32toh(u->in.s_addr);
@@ -247,7 +248,7 @@ int in_addr_prefix_nth(int family, union in_addr_union *u, unsigned prefixlen, u
unsigned start_byte = (prefixlen - 1) / 8;
if (prefixlen > 128)
prefixlen = 128;
return -ERANGE;
/* First calculate what we have to add */
delta = nth << ((128 - prefixlen) % 8);