diff options
Diffstat (limited to 'src/basic/in-addr-util.c')
-rw-r--r-- | src/basic/in-addr-util.c | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/src/basic/in-addr-util.c b/src/basic/in-addr-util.c index 4cf6ab6974..6a00de2ef0 100644 --- a/src/basic/in-addr-util.c +++ b/src/basic/in-addr-util.c @@ -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; |