]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
resolved: do not run loop twice
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 27 Aug 2019 17:02:53 +0000 (19:02 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 27 Aug 2019 17:49:09 +0000 (19:49 +0200)
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.

src/resolve/resolved-link-bus.c

index 81ef5ffaa4fa99957db2958b56b3626dc31aca35..4e7685e889b26abfbc902c03e9ce48359978aec8 100644 (file)
@@ -544,6 +544,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;
@@ -553,14 +557,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;