summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2009-03-14 07:32:20 +0100
committerMarcel Holtmann <marcel@holtmann.org>2009-03-14 07:32:20 +0100
commit175ecf87549c9b23dfc67838dd248f17cb0c2507 (patch)
tree311e7938605d9e7e48093989c7bbdba5055ff197 /plugins
parent496731294b2bbbe54cb75b1e01c1dd410a4c748a (diff)
downloadconnman-175ecf87549c9b23dfc67838dd248f17cb0c2507.tar.gz
connman-175ecf87549c9b23dfc67838dd248f17cb0c2507.tar.bz2
connman-175ecf87549c9b23dfc67838dd248f17cb0c2507.zip
Fix crash when unplugging WiFi devices
Diffstat (limited to 'plugins')
-rw-r--r--plugins/supplicant.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/plugins/supplicant.c b/plugins/supplicant.c
index b5c96992..f187b86a 100644
--- a/plugins/supplicant.c
+++ b/plugins/supplicant.c
@@ -362,6 +362,8 @@ static void remove_interface_reply(DBusPendingCall *call, void *user_data)
connman_device_set_powered(task->device, FALSE);
+ connman_device_unref(task->device);
+
free_task(task);
dbus_message_unref(reply);
@@ -1238,13 +1240,14 @@ int supplicant_start(struct connman_device *device)
task->ifindex = connman_device_get_index(device);
task->ifname = inet_index2name(task->ifindex);
- task->device = device;
if (task->ifname == NULL) {
g_free(task);
return -ENOMEM;
}
+ task->device = connman_device_ref(device);
+
task->created = FALSE;
task->noscan = FALSE;
task->state = WPA_INVALID;