Blame SOURCES/0246-resolved-do-not-run-loop-twice.patch

ddca0b
From d95afbca80cf52f0bc84b2e1b4af6aadda007138 Mon Sep 17 00:00:00 2001
a3e2b5
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
a3e2b5
Date: Tue, 27 Aug 2019 19:02:53 +0200
a3e2b5
Subject: [PATCH] resolved: do not run loop twice
a3e2b5
a3e2b5
This doesn't matter much, but let's just do the loop once and allocate
a3e2b5
the populate the result set on the fly. If we find an error, it'll get
a3e2b5
cleaned up automatically.
a3e2b5
a3e2b5
Related: #1746857
a3e2b5
---
a3e2b5
 src/resolve/resolved-link-bus.c | 13 ++++++-------
a3e2b5
 1 file changed, 6 insertions(+), 7 deletions(-)
a3e2b5
a3e2b5
diff --git a/src/resolve/resolved-link-bus.c b/src/resolve/resolved-link-bus.c
a3e2b5
index b1581740d8..46d2b11636 100644
a3e2b5
--- a/src/resolve/resolved-link-bus.c
a3e2b5
+++ b/src/resolve/resolved-link-bus.c
a3e2b5
@@ -492,6 +492,10 @@ int bus_link_method_set_dnssec_negative_trust_anchors(sd_bus_message *message, v
a3e2b5
         if (r < 0)
a3e2b5
                 return r;
a3e2b5
 
a3e2b5
+        ns = set_new(&dns_name_hash_ops);
a3e2b5
+        if (!ns)
a3e2b5
+                return -ENOMEM;
a3e2b5
+
a3e2b5
         r = sd_bus_message_read_strv(message, &ntas);
a3e2b5
         if (r < 0)
a3e2b5
                 return r;
a3e2b5
@@ -501,14 +505,9 @@ int bus_link_method_set_dnssec_negative_trust_anchors(sd_bus_message *message, v
a3e2b5
                 if (r < 0)
a3e2b5
                         return r;
a3e2b5
                 if (r == 0)
a3e2b5
-                        return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid negative trust anchor domain: %s", *i);
a3e2b5
-        }
a3e2b5
+                        return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS,
a3e2b5
+                                                 "Invalid negative trust anchor domain: %s", *i);
a3e2b5
 
a3e2b5
-        ns = set_new(&dns_name_hash_ops);
a3e2b5
-        if (!ns)
a3e2b5
-                return -ENOMEM;
a3e2b5
-
a3e2b5
-        STRV_FOREACH(i, ntas) {
a3e2b5
                 r = set_put_strdup(ns, *i);
a3e2b5
                 if (r < 0)
a3e2b5
                         return r;