summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2020-10-09 08:14:54 +0200
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2020-10-09 08:14:54 +0200
commit081b300976d6f34b8cb53a2b446cdf2341abcde6 (patch)
treee385d3d77bea015c959fa2fe9726ee48bda73522
parentsystemctl: fix reversed arguments in function call (diff)
downloadsystemd-081b300976d6f34b8cb53a2b446cdf2341abcde6.tar.xz
systemd-081b300976d6f34b8cb53a2b446cdf2341abcde6.zip
networkd: add assert to appease coverity
The code was OK, but not obviously so. Let's add an assert to help a human or nonhuman reader figure it out. Coverity CID#1433224.
-rw-r--r--src/network/networkd-route.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/network/networkd-route.c b/src/network/networkd-route.c
index b59c48d482..1ed82d9adc 100644
--- a/src/network/networkd-route.c
+++ b/src/network/networkd-route.c
@@ -594,6 +594,7 @@ int route_remove(
if (!manager)
manager = link->manager;
+ /* link may be NULL! */
r = sd_rtnl_message_new_route(manager->rtnl, &req,
RTM_DELROUTE, route->family,
@@ -676,6 +677,8 @@ int route_remove(
return log_link_error_errno(link, r, "Could not append RTA_PRIORITY attribute: %m");
if (!IN_SET(route->type, RTN_UNREACHABLE, RTN_PROHIBIT, RTN_BLACKHOLE, RTN_THROW)) {
+ assert(link); /* Those routes must be attached to a specific link */
+
r = sd_netlink_message_append_u32(req, RTA_OIF, link->ifindex);
if (r < 0)
return log_link_error_errno(link, r, "Could not append RTA_OIF attribute: %m");
@@ -687,8 +690,7 @@ int route_remove(
if (r < 0)
return log_link_error_errno(link, r, "Could not send rtnetlink message: %m");
- if (link)
- link_ref(link);
+ link_ref(link); /* link may be NULL, link_ref() is OK with that */
return 0;
}