From: Yu Watanabe Date: Fri, 7 May 2021 11:52:49 +0000 (+0900) Subject: network: nexthop: add NextHop object before sending netlink request X-Git-Tag: v249-rc1~240^2~9 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=17060f02ccf78610e6921f58f4b354602e777df6;p=thirdparty%2Fsystemd.git network: nexthop: add NextHop object before sending netlink request Otherwise, if nexthop_add() fails, then assertion about nexthop_messages in static_nexthop_handler() will be triggered. --- diff --git a/src/network/networkd-nexthop.c b/src/network/networkd-nexthop.c index b0759cac901..661310352ca 100644 --- a/src/network/networkd-nexthop.c +++ b/src/network/networkd-nexthop.c @@ -413,7 +413,7 @@ static int nexthop_configure( NextHop **ret) { _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *req = NULL; - int r; + int r, k; assert(link); assert(link->manager); @@ -458,6 +458,10 @@ static int nexthop_configure( } } + k = nexthop_add(link, nexthop, ret); + if (k < 0) + return log_link_error_errno(link, k, "Could not add nexthop: %m"); + r = netlink_call_async(link->manager->rtnl, NULL, req, callback, link_netlink_destroy_callback, link); if (r < 0) @@ -465,11 +469,7 @@ static int nexthop_configure( link_ref(link); - r = nexthop_add(link, nexthop, ret); - if (r < 0) - return log_link_error_errno(link, r, "Could not add nexthop: %m"); - - return r; + return k; } static int static_nexthop_handler(sd_netlink *rtnl, sd_netlink_message *m, Link *link) {