From fdce9324c7132a9a6d3b2fe9f8449dcfc8309114 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Wed, 30 Dec 2020 02:11:32 +0900 Subject: [PATCH] network: fix possible memory leak When set_put() returns 0, then already stored rule will be unref()ed from Manager. --- src/network/networkd-routing-policy-rule.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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;