summaryrefslogtreecommitdiff
authorDan Williams <dcbw@redhat.com>2009-10-05 06:36:06 (GMT)
committer Dan Williams <dcbw@redhat.com>2009-10-05 06:36:06 (GMT)
commit85da54edd724dd01512dcf65be0b192047c52494 (patch)
tree41b2daacc39b19db8da7ba43bc3a7afa4bd50a80
parent12aa505d3cbfc7c177c5ab655143d5410ee5e39e (diff)
downloadNetworkManager-85da54edd724dd01512dcf65be0b192047c52494.zip
NetworkManager-85da54edd724dd01512dcf65be0b192047c52494.tar.gz
NetworkManager-85da54edd724dd01512dcf65be0b192047c52494.tar.bz2
manager: fix use-after-free crash for cdc-ether modems
An ethernet device that's actually a component of a modem could get added to the device list, but then destroyed without getting removed from the device list.
-rw-r--r--src/nm-manager.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/nm-manager.c b/src/nm-manager.c
index 416df1a..51a1e69 100644
--- a/src/nm-manager.c
+++ b/src/nm-manager.c
@@ -1203,8 +1203,6 @@ add_device (NMManager *self, NMDevice *device)
gpointer value;
gboolean managed = FALSE;
- priv->devices = g_slist_append (priv->devices, device);
-
iface = nm_device_get_ip_iface (device);
g_assert (iface);
@@ -1213,6 +1211,8 @@ add_device (NMManager *self, NMDevice *device)
return;
}
+ priv->devices = g_slist_append (priv->devices, device);
+
g_signal_connect (device, "state-changed",
G_CALLBACK (manager_device_state_changed),
self);