summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2019-08-27 19:02:53 +0200
committerLukas Nykryn <lnykryn@redhat.com>2019-10-24 12:22:18 +0200
commitd95afbca80cf52f0bc84b2e1b4af6aadda007138 (patch)
treeeb67c6f67ee5ef09da2f4b8c896254f80743e480
parent7e0f9a0cd4053fcc713a99ada3d0d50793b83564 (diff)
downloadsystemd-d95afbca80cf52f0bc84b2e1b4af6aadda007138.tar.gz
resolved: do not run loop twice
This doesn't matter much, but let's just do the loop once and allocate the populate the result set on the fly. If we find an error, it'll get cleaned up automatically. Related: #1746857
-rw-r--r--src/resolve/resolved-link-bus.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/resolve/resolved-link-bus.c b/src/resolve/resolved-link-bus.c
index b1581740d8..46d2b11636 100644
--- a/src/resolve/resolved-link-bus.c
+++ b/src/resolve/resolved-link-bus.c
@@ -492,6 +492,10 @@ int bus_link_method_set_dnssec_negative_trust_anchors(sd_bus_message *message, v
if (r < 0)
return r;
+ ns = set_new(&dns_name_hash_ops);
+ if (!ns)
+ return -ENOMEM;
+
r = sd_bus_message_read_strv(message, &ntas);
if (r < 0)
return r;
@@ -501,14 +505,9 @@ int bus_link_method_set_dnssec_negative_trust_anchors(sd_bus_message *message, v
if (r < 0)
return r;
if (r == 0)
- return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid negative trust anchor domain: %s", *i);
- }
+ return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS,
+ "Invalid negative trust anchor domain: %s", *i);
- ns = set_new(&dns_name_hash_ops);
- if (!ns)
- return -ENOMEM;
-
- STRV_FOREACH(i, ntas) {
r = set_put_strdup(ns, *i);
if (r < 0)
return r;