From: Yu Watanabe Date: Thu, 11 Nov 2021 00:24:56 +0000 (+0900) Subject: network: neighbor: accept an empty string assignment X-Git-Tag: v250-rc1~307^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F21301%2Fhead;p=thirdparty%2Fsystemd.git network: neighbor: accept an empty string assignment --- diff --git a/src/network/networkd-neighbor.c b/src/network/networkd-neighbor.c index f7618fd9f63..1766095e531 100644 --- a/src/network/networkd-neighbor.c +++ b/src/network/networkd-neighbor.c @@ -611,20 +611,27 @@ int config_parse_neighbor_address( void *data, void *userdata) { - Network *network = userdata; _cleanup_(neighbor_free_or_set_invalidp) Neighbor *n = NULL; + Network *network = userdata; int r; assert(filename); assert(section); assert(lvalue); assert(rvalue); - assert(data); + assert(userdata); r = neighbor_new_static(network, filename, section_line, &n); if (r < 0) return log_oom(); + if (isempty(rvalue)) { + n->family = AF_UNSPEC; + n->in_addr = IN_ADDR_NULL; + TAKE_PTR(n); + return 0; + } + r = in_addr_from_string_auto(rvalue, &n->family, &n->in_addr); if (r < 0) { log_syntax(unit, LOG_WARNING, filename, line, r, @@ -633,7 +640,6 @@ int config_parse_neighbor_address( } TAKE_PTR(n); - return 0; } @@ -649,20 +655,26 @@ int config_parse_neighbor_lladdr( void *data, void *userdata) { - Network *network = userdata; _cleanup_(neighbor_free_or_set_invalidp) Neighbor *n = NULL; + Network *network = userdata; int r; assert(filename); assert(section); assert(lvalue); assert(rvalue); - assert(data); + assert(userdata); r = neighbor_new_static(network, filename, section_line, &n); if (r < 0) return log_oom(); + if (isempty(rvalue)) { + n->ll_addr = HW_ADDR_NULL; + TAKE_PTR(n); + return 0; + } + r = parse_hw_addr(rvalue, &n->ll_addr); if (r < 0) { log_syntax(unit, LOG_WARNING, filename, line, r,