]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network: route: route->link may be NULL
authorYu Watanabe <watanabe.yu+github@gmail.com>
Sat, 27 Nov 2021 12:01:27 +0000 (21:01 +0900)
committerLuca Boccassi <luca.boccassi@gmail.com>
Sat, 27 Nov 2021 13:48:02 +0000 (13:48 +0000)
Fixes #21544.

src/network/networkd-route.c

index 1b3bea98f6d5cc0f06ef7324570df85da7d2a75d..623b962c23200d40820011050be04a2324301c25 100644 (file)
@@ -981,15 +981,19 @@ void link_foreignize_routes(Link *link) {
 
 static int route_expire_handler(sd_event_source *s, uint64_t usec, void *userdata) {
         Route *route = userdata;
+        Link *link;
         int r;
 
         assert(route);
-        assert(route->link);
+        assert(route->manager || (route->link && route->link->manager));
+
+        link = route->link; /* This may be NULL. */
 
         r = route_remove(route);
         if (r < 0) {
-                log_link_warning_errno(route->link, r, "Could not remove route: %m");
-                link_enter_failed(route->link);
+                log_link_warning_errno(link, r, "Could not remove route: %m");
+                if (link)
+                        link_enter_failed(link);
         }
 
         return 1;