]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network: free Route object when route_remove() fails
authorYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 7 Oct 2020 02:06:27 +0000 (11:06 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 7 Oct 2020 17:51:23 +0000 (02:51 +0900)
When route_remove() succeeds, the Route object will be freed later by
manager_rtnl_process_route().

src/network/networkd-route.c

index 5df5f8fb6c578ad45e90d64c710384a9fd2cba6b..feb62ee7836aa1a91e5fc28159be3fa78803cba3 100644 (file)
@@ -760,10 +760,10 @@ static int route_expire_handler(sd_event_source *s, uint64_t usec, void *userdat
         assert(route);
 
         r = route_remove(route, route->manager, route->link, NULL);
-        if (r < 0)
+        if (r < 0) {
                 log_link_warning_errno(route->link, r, "Could not remove route: %m");
-        else
                 route_free(route);
+        }
 
         return 1;
 }