in-addr-util: make in_addr_default_prefix_from_string() or friend set 0 to prefixlen when family == AF_INET6 (#10665)

Follow-up for a4798d4e6d.

Fixes #10662.
This commit is contained in:
Yu Watanabe
2018-11-07 15:31:26 +09:00
committed by GitHub
parent 13d8a53aae
commit c6d8bbb66e
3 changed files with 16 additions and 10 deletions
+14 -8
View File
@@ -531,10 +531,13 @@ int in_addr_prefix_from_string_internal(
r = in_addr_parse_prefixlen(family, e+1, &k);
if (r < 0)
return r;
} else if (family == AF_INET && use_default_prefixlen) {
r = in4_addr_default_prefixlen(&buffer.in, &k);
if (r < 0)
return r;
} else if (use_default_prefixlen) {
if (family == AF_INET) {
r = in4_addr_default_prefixlen(&buffer.in, &k);
if (r < 0)
return r;
} else
k = 0;
} else
k = FAMILY_ADDRESS_SIZE(family) * 8;
@@ -579,10 +582,13 @@ int in_addr_prefix_from_string_auto_internal(
r = in_addr_parse_prefixlen(family, e+1, &k);
if (r < 0)
return r;
} else if (family == AF_INET && use_default_prefixlen) {
r = in4_addr_default_prefixlen(&buffer.in, &k);
if (r < 0)
return r;
} else if (use_default_prefixlen) {
if (family == AF_INET) {
r = in4_addr_default_prefixlen(&buffer.in, &k);
if (r < 0)
return r;
} else
k = 0;
} else
k = FAMILY_ADDRESS_SIZE(family) * 8;