Commit ffd961fe authored by Dan Williams's avatar Dan Williams Committed by Thomas Haller

core: properly initialize unmanaged_flags and handle carrier_changed() for unmanaged devices

Fixes the following g_warn():
    #0  0x0000003370c504e9 in g_logv () from /lib64/libglib-2.0.so.0
    #1  0x0000003370c5063f in g_log () from /lib64/libglib-2.0.so.0
    #2  0x0000003370c50956 in g_warn_message () from /lib64/libglib-2.0.so.0
    #3  0x0000000000439962 in carrier_changed (device=0x1d94300, carrier=1) at devices/nm-device.c:1021
    #4  0x0000000000488f12 in carrier_changed (device=0x1d94300, carrier=1) at devices/nm-device-ethernet.c:1646
    #5  0x0000000000434c94 in nm_device_set_carrier (device=device@entry=0x1d94300, carrier=1) at devices/nm-device.c:1104
    #6  0x0000000000434dd5 in check_carrier (device=device@entry=0x1d94300) at devices/nm-device.c:1298
    #7  0x0000000000434ef8 in constructed (object=0x1d94300) at devices/nm-device.c:550
    #8  0x0000003371c15d87 in g_object_new_internal () from /lib64/libgobject-2.0.so.0
    #9  0x0000003371c17814 in g_object_new_valist () from /lib64/libgobject-2.0.so.0
    #10 0x0000003371c17c11 in g_object_new () from /lib64/libgobject-2.0.so.0
    #11 0x000000000048bc2e in nm_device_ethernet_new (platform_device=platform_device@entry=0x1d82e58) at devices/nm-device-ethernet.c:336
    #12 0x000000000047c600 in platform_link_added (self=0x1d70150, ifindex=ifindex@entry=2, plink=plink@entry=0x1d82e58, reason=reason@entry=NM_PLATFORM_REASON_INTERNAL) at nm-manager.c:1954
    #13 0x000000000047c7db in platform_link_cb (platform=<optimized out>, ifindex=2, plink=0x1d82e58, change_type=<optimized out>, reason=NM_PLATFORM_REASON_INTERNAL, user_data=0x1d70150) at nm-manager.c:2038
    #14 0x0000003371805d8c in ffi_call_unix64 () from /lib64/libffi.so.6
    #15 0x00000033718056bc in ffi_call () from /lib64/libffi.so.6
    #16 0x0000003371c10ad8 in g_cclosure_marshal_generic () from /lib64/libgobject-2.0.so.0
    #17 0x0000003371c10298 in g_closure_invoke () from /lib64/libgobject-2.0.so.0
    #18 0x0000003371c2235d in signal_emit_unlocked_R () from /lib64/libgobject-2.0.so.0
    #19 0x0000003371c2a0f2 in g_signal_emit_valist () from /lib64/libgobject-2.0.so.0
    #20 0x0000003371c2a3af in g_signal_emit () from /lib64/libgobject-2.0.so.0
    #21 0x000000000044f6ba in nm_platform_query_devices () at platform/nm-platform.c:330
    #22 0x000000000047de4c in nm_manager_start (self=0x1d70150) at nm-manager.c:4025
    #23 0x0000000000429d31 in main (argc=1, argv=0x7fffb4c31628) at main.c:654

https://mail.gnome.org/archives/networkmanager-list/2014-June/msg00000.htmlSigned-off-by: Thomas Haller's avatarThomas Haller <thaller@redhat.com>
parent d7b8aeea
......@@ -378,6 +378,7 @@ nm_device_init (NMDevice *self)
priv->dhcp_timeout = 0;
priv->rfkill_type = RFKILL_TYPE_UNKNOWN;
priv->autoconnect = DEFAULT_AUTOCONNECT;
priv->unmanaged_flags = NM_UNMANAGED_INTERNAL;
priv->available_connections = g_hash_table_new_full (g_direct_hash, g_direct_equal, g_object_unref, NULL);
priv->ip6_saved_properties = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, g_free);
}
......@@ -7180,7 +7181,7 @@ nm_device_get_managed (NMDevice *device)
*/
managed = !(priv->unmanaged_flags & ~NM_UNMANAGED_DEFAULT);
if (managed && (priv->unmanaged_flags & NM_UNMANAGED_DEFAULT))
managed = (priv->state != NM_DEVICE_STATE_UNMANAGED);
managed = (priv->state > NM_DEVICE_STATE_UNMANAGED);
return managed;
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment