richardphibel / rpms / systemd

Forked from rpms/systemd 2 years ago
Clone
923a60
From 583aea0f48640611f0c1d5da9dec8d3759521ce9 Mon Sep 17 00:00:00 2001
923a60
From: Andrew Jeddeloh <andrewjeddeloh@gmail.com>
923a60
Date: Thu, 31 Aug 2017 01:58:39 -0700
923a60
Subject: [PATCH] networkd: dont crash when mtu changes (#6594)
923a60
923a60
Prevent networkd from crashing when UseMTU is used. Many drivers will
923a60
bring the link down and then back up to configure a new MTU. Networkd
923a60
will also asynchonously send rtnl messages to configure the link and may
923a60
receive responses after the link has gone down and come back up (which
923a60
networkd will handle and set the lease and network to NULL.
923a60
923a60
This changes the behavior to instead return if this is the case instead
923a60
of crashing via assert.
923a60
923a60
(cherry picked from commit 0c9b15a38a558d8f84257455ee24174221069e9e)
923a60
923a60
Related: #1663365
923a60
---
923a60
 src/network/networkd-dhcp4.c | 8 ++++++--
923a60
 1 file changed, 6 insertions(+), 2 deletions(-)
923a60
923a60
diff --git a/src/network/networkd-dhcp4.c b/src/network/networkd-dhcp4.c
923a60
index 295e44fdd7..a47286af6b 100644
923a60
--- a/src/network/networkd-dhcp4.c
923a60
+++ b/src/network/networkd-dhcp4.c
923a60
@@ -57,8 +57,12 @@ static int link_set_dhcp_routes(Link *link) {
923a60
         int r, n, i;
923a60
 
923a60
         assert(link);
923a60
-        assert(link->dhcp_lease);
923a60
-        assert(link->network);
923a60
+
923a60
+        if (!link->dhcp_lease) /* link went down while we configured the IP addresses? */
923a60
+                return 0;
923a60
+
923a60
+        if (!link->network) /* link went down while we configured the IP addresses? */
923a60
+                return 0;
923a60
 
923a60
         if (!link->network->dhcp_routes)
923a60
                 return 0;