diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2019-12-12 19:01:21 +0900 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2020-09-20 12:46:57 +0200 |
commit | 6d840ca77ef07f5ad8d7a84a7956edef188ef6ba (patch) | |
tree | aed4b1bd91b2cc24c6d42afc9729a6990a6a43e8 | |
parent | 165ae6edc64ad6fa2129bedcac2837d24773e31f (diff) | |
download | systemd-6d840ca77ef07f5ad8d7a84a7956edef188ef6ba.tar.gz |
network-generator: allow empty hostname
Fixes #14319.
(cherry picked from commit 21a925a4ac7955e7d7e6cfd477e96d3a2aaee7db)
(cherry picked from commit efd5b1d443fee81a48939e3f86e7feb338f26211)
-rw-r--r-- | src/network/generator/network-generator.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/network/generator/network-generator.c b/src/network/generator/network-generator.c index 0b5af33566..95fcd945c9 100644 --- a/src/network/generator/network-generator.c +++ b/src/network/generator/network-generator.c @@ -574,7 +574,7 @@ static int parse_netmask_or_prefixlen(int family, const char **value, unsigned c static int parse_cmdline_ip_address(Context *context, int family, const char *value) { union in_addr_union addr = {}, peer = {}, gateway = {}; - const char *hostname, *ifname, *dhcp_type, *dns, *p; + const char *hostname = NULL, *ifname, *dhcp_type, *dns, *p; unsigned char prefixlen; int r; @@ -599,9 +599,11 @@ static int parse_cmdline_ip_address(Context *context, int family, const char *va if (!p) return -EINVAL; - hostname = strndupa(value, p - value); - if (!hostname_is_valid(hostname, false)) - return -EINVAL; + if (p != value) { + hostname = strndupa(value, p - value); + if (!hostname_is_valid(hostname, false)) + return -EINVAL; + } value = p + 1; |