]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network: fix possible memory leak
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 29 Dec 2020 17:11:32 +0000 (02:11 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 29 Dec 2020 17:11:36 +0000 (02:11 +0900)
When set_put() returns 0, then already stored rule will be unref()ed
from Manager.

src/network/networkd-routing-policy-rule.c

index bb1c77ad269fc634667a579f69047b022492de85..723a44cb6d59be05e9c5db269005c9379cbc9298 100644 (file)
@@ -343,8 +343,6 @@ static int routing_policy_rule_add_internal(Manager *m, Set **rules, const Routi
         if (r < 0)
                 return r;
 
-        rule->manager = m;
-
         r = routing_policy_rule_copy(rule, in);
         if (r < 0)
                 return r;
@@ -357,6 +355,8 @@ static int routing_policy_rule_add_internal(Manager *m, Set **rules, const Routi
         if (r == 0)
                 return -EEXIST;
 
+        rule->manager = m;
+
         if (ret)
                 *ret = rule;