From: Zbigniew Jędrzejewski-Szmek Date: Wed, 9 Jun 2021 10:23:07 +0000 (+0200) Subject: networkd: reorder conditional to handle errors first X-Git-Tag: v249-rc1~46^2~3 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6923020ec12152ec9804d483de97284c970c7de3;p=thirdparty%2Fsystemd.git networkd: reorder conditional to handle errors first This also avoid the implicit assumption that if r is not -ENOENT, 0, or 1, it must be negative. The compiler cannot know this. --- diff --git a/src/network/networkd-routing-policy-rule.c b/src/network/networkd-routing-policy-rule.c index a319a6fbe3a..39b773fcc0e 100644 --- a/src/network/networkd-routing-policy-rule.c +++ b/src/network/networkd-routing-policy-rule.c @@ -338,7 +338,9 @@ static int routing_policy_rule_add(Manager *m, const RoutingPolicyRule *in, Rout rule->manager = m; existing = TAKE_PTR(rule); - } else if (r == 0) { + } else if (r < 0) + return r; + else if (r == 0) { /* Take over a foreign rule. */ r = set_ensure_put(&m->rules, &routing_policy_rule_hash_ops, existing); if (r < 0) @@ -346,11 +348,7 @@ static int routing_policy_rule_add(Manager *m, const RoutingPolicyRule *in, Rout assert(r > 0); set_remove(m->rules_foreign, existing); - } else if (r == 1) { - /* Already exists, do nothing. */ - ; - } else - return r; + } /* else r > 0: already exists, do nothing. */ if (ret) *ret = existing;