From: Yu Watanabe Date: Sun, 7 Jan 2024 02:53:27 +0000 (+0900) Subject: network/route-metric: invalidate [Route] section if an invalid string is specified X-Git-Tag: v256-rc1~1204^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9aa3c07947041ab87c72e2181fd959b2ff3542f1;p=thirdparty%2Fsystemd.git network/route-metric: invalidate [Route] section if an invalid string is specified Follow-up for 18c4c5d84f756b144a1823f3de8bc0e61264b976. --- diff --git a/src/network/networkd-route-metric.c b/src/network/networkd-route-metric.c index 43480bd3831..67841cb67ea 100644 --- a/src/network/networkd-route-metric.c +++ b/src/network/networkd-route-metric.c @@ -435,15 +435,12 @@ int config_parse_route_metric_tcp_congestion( void *data, void *userdata) { - Network *network = userdata; + Network *network = ASSERT_PTR(userdata); _cleanup_(route_free_or_set_invalidp) Route *route = NULL; int r; assert(filename); - assert(section); - assert(lvalue); assert(rvalue); - assert(data); r = route_new_static(network, filename, section_line, &route); if (r == -ENOMEM) @@ -456,7 +453,7 @@ int config_parse_route_metric_tcp_congestion( r = config_parse_string(unit, filename, line, section, section_line, lvalue, 0, rvalue, &route->metric.tcp_congestion_control_algo, userdata); - if (r < 0) + if (r <= 0) return r; TAKE_PTR(route); diff --git a/src/shared/conf-parser.c b/src/shared/conf-parser.c index 1d201528ace..d8a2c47209d 100644 --- a/src/shared/conf-parser.c +++ b/src/shared/conf-parser.c @@ -1088,6 +1088,7 @@ int config_parse_string( void *userdata) { char **s = ASSERT_PTR(data); + int r; assert(filename); assert(lvalue); @@ -1095,7 +1096,7 @@ int config_parse_string( if (isempty(rvalue)) { *s = mfree(*s); - return 0; + return 1; } if (FLAGS_SET(ltype, CONFIG_PARSE_STRING_SAFE) && !string_is_safe(rvalue)) { @@ -1116,7 +1117,11 @@ int config_parse_string( return 0; } - return free_and_strdup_warn(s, empty_to_null(rvalue)); + r = free_and_strdup_warn(s, empty_to_null(rvalue)); + if (r < 0) + return r; + + return 1; } int config_parse_dns_name(