From 6923020ec12152ec9804d483de97284c970c7de3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Wed, 9 Jun 2021 12:23:07 +0200 Subject: [PATCH] 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. --- src/network/networkd-routing-policy-rule.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) 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; -- 2.47.3