From a3ed90bdbc2ff16a2a4f4f6f42b84a9498e20de8 Mon Sep 17 00:00:00 2001 From: Beniamino Galvani Date: Wed, 11 Dec 2019 11:57:33 +0100 Subject: [PATCH] device: don't reapply IP configuration if the ifindex is missing Assertions will fail in ip_config_merge_and_apply() if the device doesn't have an ifindex. Reproducible with: $ nmcli connection add type ovs-bridge ifname ovs0 ipv4.method disabled ipv6.method disabled Connection 'ovs-bridge-ovs0' (1d5e794b-10ad-4b2b-aa7c-5ca7e34b0a55) successfully added $ nmcli device reapply ovs0 Error: Reapplying connection to device '(null)' (/org/freedesktop/NetworkManager/Devices/16) failed: Remote peer disconnected $ journalctl -u NetworkManager -e ... NetworkManager[73824]: nm_ip4_config_add_dependent_routes: assertion 'ifindex > 0' failed systemd[1]: NetworkManager.service: Main process exited, code=dumped, status=5/TRAP ... (cherry picked from commit 6d6e1402dc6e68688b05d7df3f5a05957db56e7e) (cherry picked from commit f1d4853927c922d120b51161619ff588064f46aa) --- src/devices/nm-device.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c index b2295ef1ae..05e310d8db 100644 --- a/src/devices/nm-device.c +++ b/src/devices/nm-device.c @@ -11361,7 +11361,8 @@ nm_device_reactivate_ip4_config (NMDevice *self, } } - if (!ip_config_merge_and_apply (self, AF_INET, TRUE)) + if ( nm_device_get_ip_ifindex (self) > 0 + && !ip_config_merge_and_apply (self, AF_INET, TRUE)) _LOGW (LOGD_IP4, "Failed to reapply IPv4 configuration"); } } @@ -11434,7 +11435,8 @@ nm_device_reactivate_ip6_config (NMDevice *self, } } - if (!ip_config_merge_and_apply (self, AF_INET6, TRUE)) + if ( nm_device_get_ip_ifindex (self) > 0 + && !ip_config_merge_and_apply (self, AF_INET6, TRUE)) _LOGW (LOGD_IP4, "Failed to reapply IPv6 configuration"); } }