1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2025-03-13 12:58:20 +03:00

network-generator: refuse unexpected trailing strings

(cherry picked from commit b86f60bfb3340a9fa27cb6f127fba7c827481b50)
(cherry picked from commit c2cc0ca17923034130a0dc1118b20f5a96db8d95)
(cherry picked from commit 7c894f8281818374306e912eaa7b975ca59c22ed)
This commit is contained in:
Yu Watanabe 2023-11-08 04:28:02 +09:00 committed by Luca Boccassi
parent 22378de9d9
commit 768eca0286
2 changed files with 9 additions and 3 deletions

View File

@ -693,9 +693,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;
}
@ -785,10 +782,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

@ -291,6 +291,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" --root "$WORK_DIR")