From 1fdf9e4c419bfcc68bb305a922d30dd85a29c06b Mon Sep 17 00:00:00 2001 From: Beniamino Galvani Date: Sat, 2 Jul 2016 12:20:52 +0200 Subject: [PATCH] device: don't try to generate ipv6ll address for disconnected devices If the device is disconnected because it can't be assumed due to lack of IP configuration, don't try to generate an ipv6 link-local address, as this requires a connection. #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54 #1 __GI_abort () at abort.c:89 #2 g_assertion_message (domain=domain@entry=0x5f41b4 "NetworkManager", file=file@entry=0x5ef9b5 "devices/nm-device.c", line=line@entry=831, func=func@entry=0x5f3220 <__FUNCTION__.37383> "nm_device_get_ip_iface_identifier", message=message@entry=0x1e86100 "assertion failed: (connection)") at gtestutils.c:2429 #3 g_assertion_message_expr (domain=domain@entry=0x5f41b4 "NetworkManager", file=file@entry=0x5ef9b5 "devices/nm-device.c", line=line@entry=831, func=func@entry=0x5f3220 <__FUNCTION__.37383> "nm_device_get_ip_iface_identifier", expr=expr@entry=0x5e65c6 "connection") at gtestutils.c:2452 #4 nm_device_get_ip_iface_identifier (self=self@entry=0x1e612a0, iid=iid@entry=0x7fffce40e3d0, ignore_token=ignore_token@entry=1) at devices/nm-device.c:831 #5 check_and_add_ipv6ll_addr (self=self@entry=0x1e612a0) at devices/nm-device.c:5983 #6 queued_ip6_config_change (user_data=0x1e612a0) at devices/nm-device.c:9489 #7 g_main_dispatch (context=0x1d3e060) at gmain.c:3154 #8 g_main_context_dispatch (context=context@entry=0x1d3e060) at gmain.c:3769 #9 g_main_context_iterate (context=0x1d3e060, block=block@entry=1, dispatch=dispatch@entry=1, self=) at gmain.c:3840 #10 g_main_loop_run (loop=0x1d3ab00) at gmain.c:4034 #11 main (argc=1, argv=0x7fffce40e6a8) at main.c:411 https://bugzilla.redhat.com/show_bug.cgi?id=1351633 (cherry picked from commit f85941ee91017079f30afac80e7b39c44cb04c81) --- src/devices/nm-device.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c index 316cfb60e8..415b986368 100644 --- a/src/devices/nm-device.c +++ b/src/devices/nm-device.c @@ -9099,9 +9099,10 @@ queued_ip6_config_change (gpointer user_data) g_object_ref (self); update_ip6_config (self, FALSE); - if ( nm_platform_link_get (NM_PLATFORM_GET, priv->ifindex) - && priv->state < NM_DEVICE_STATE_DEACTIVATING) { - /* Handle DAD falures */ + if ( priv->state > NM_DEVICE_STATE_DISCONNECTED + && priv->state < NM_DEVICE_STATE_DEACTIVATING + && nm_platform_link_get (NM_PLATFORM_GET, priv->ifindex)) { + /* Handle DAD failures */ for (iter = priv->dad6_failed_addrs; iter; iter = g_slist_next (iter)) { NMPlatformIP6Address *addr = iter->data;