summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohamed Abbas <mabbas@linux.intel.com>2010-10-27 03:17:39 -0700
committerSamuel Ortiz <sameo@linux.intel.com>2010-11-02 11:56:00 +0100
commita091beb5bd344661c86b2c2a397740e2eed9e8e1 (patch)
treebbd8159b24ec69109a19eb7589ec4f4fae78752b
parenta10269d912d02b74c3e64c9914b803460a35cf68 (diff)
downloadconnman-a091beb5bd344661c86b2c2a397740e2eed9e8e1.tar.gz
connman-a091beb5bd344661c86b2c2a397740e2eed9e8e1.tar.bz2
connman-a091beb5bd344661c86b2c2a397740e2eed9e8e1.zip
gsupplicant: Fix deadlock when disassociate while associating
Without setting the associating flag to false, ConnMan could potentially enter an infinite loop through __connman_network_disconnect().
-rw-r--r--plugins/wifi.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/plugins/wifi.c b/plugins/wifi.c
index a159a9df..69548fdf 100644
--- a/plugins/wifi.c
+++ b/plugins/wifi.c
@@ -617,6 +617,8 @@ static int network_disconnect(struct connman_network *network)
if (wifi == NULL || wifi->interface == NULL)
return -ENODEV;
+ connman_network_set_associating(network, FALSE);
+
return g_supplicant_interface_disconnect(wifi->interface,
disconnect_callback, wifi);
}