diff --git a/src/network/networkd-route-metric.c b/src/network/networkd-route-metric.c index 43480bd383..67841cb67e 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 1d201528ac..d8a2c47209 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(