From: Yu Watanabe Date: Tue, 29 Dec 2020 17:11:32 +0000 (+0900) Subject: network: fix possible memory leak X-Git-Tag: v248-rc1~443^2~5 X-Git-Url: http://git-history.diyao.me/?a=commitdiff_plain;h=fdce9324c7132a9a6d3b2fe9f8449dcfc8309114;p=systemd%2F.git network: fix possible memory leak When set_put() returns 0, then already stored rule will be unref()ed from Manager. --- diff --git a/src/network/networkd-routing-policy-rule.c b/src/network/networkd-routing-policy-rule.c index bb1c77ad26..723a44cb6d 100644 --- a/src/network/networkd-routing-policy-rule.c +++ b/src/network/networkd-routing-policy-rule.c @@ -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;