From: Yu Watanabe Date: Fri, 26 Nov 2021 08:03:11 +0000 (+0900) Subject: network: make both search_domains and route_domains allocated on DBus call X-Git-Tag: v250-rc1~118^2~3 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1f65aa3a58df09143067c1e302618faf2a9915e3;p=thirdparty%2Fsystemd.git network: make both search_domains and route_domains allocated on DBus call --- diff --git a/src/network/networkd-link-bus.c b/src/network/networkd-link-bus.c index 47e0d40d576..765733b38c4 100644 --- a/src/network/networkd-link-bus.c +++ b/src/network/networkd-link-bus.c @@ -195,9 +195,16 @@ int bus_link_method_set_domains(sd_bus_message *message, void *userdata, sd_bus_ if (r < 0) return r; + search_domains = ordered_set_new(&string_hash_ops_free); + if (!search_domains) + return -ENOMEM; + + route_domains = ordered_set_new(&string_hash_ops_free); + if (!route_domains) + return -ENOMEM; + for (;;) { _cleanup_free_ char *str = NULL; - OrderedSet **domains; const char *name; int route_only; @@ -219,12 +226,7 @@ int bus_link_method_set_domains(sd_bus_message *message, void *userdata, sd_bus_ if (r < 0) return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid search domain %s", name); - domains = route_only ? &route_domains : &search_domains; - r = ordered_set_ensure_allocated(domains, &string_hash_ops_free); - if (r < 0) - return r; - - r = ordered_set_consume(*domains, TAKE_PTR(str)); + r = ordered_set_consume(route_only ? route_domains : search_domains, TAKE_PTR(str)); if (r == -EEXIST) continue; if (r < 0)