network-generator: refuse unexpected trailing strings

This commit is contained in:
Yu Watanabe 2023-11-08 04:28:02 +09:00
parent 816c269e55
commit b86f60bfb3
2 changed files with 9 additions and 3 deletions

View file

@ -716,9 +716,6 @@ static int parse_ip_dns_address_one(Context *context, const char *ifname, const
if (r < 0)
return r;
if (p[0] == ':')
p++;
*value = p;
return 0;
}
@ -808,10 +805,16 @@ static int parse_cmdline_ip_address(Context *context, int family, const char *va
r = parse_ip_dns_address_one(context, ifname, &value);
if (r < 0)
return r;
value += *value == ':';
r = parse_ip_dns_address_one(context, ifname, &value);
if (r < 0)
return r;
/* refuse unexpected trailing strings */
if (!isempty(value))
return -EINVAL;
return 0;
}

View file

@ -302,6 +302,9 @@ INVALID_COMMAND_LINES=(
"ip=fdef:c400:bd01:1096::2::[fdef:c400:bd01:1096::1]:64::ipv6:off:[fdef:c400:bd01:1096::aaaa]"
"ip=[fdef:c400:bd01:1096::2]::[fdef:c400:bd01:1096::1]:64::ipv6:off:foo"
"ip=[fdef:c400:bd01:1096::2]::[fdef:c400:bd01:1096::1]:64::ipv6:off:[fdef:c400:bd01:1096::aaaa]:foo"
"ip=[fdef:c400:bd01:1096::2]::[fdef:c400:bd01:1096::1]:64::ipv6:off:[fdef:c400:bd01:1096::aaaa]:[fdef:c400:bd01:1096::bbbb]:"
"ip=:::::dhcp99:dhcp6:10.0.0.128:10.0.0.129:"
"ip=:::::dhcp99:dhcp6:10.0.0.128:[fdef:c400:bd01:1096::bbbb]:"
)
for cmdline in "${INVALID_COMMAND_LINES[@]}"; do
(! SYSTEMD_LOG_LEVEL=debug SYSTEMD_PROC_CMDLINE="$cmdline" "$GENERATOR_BIN")