From 604a5272c1be29048377856e4f655af354942c55 Mon Sep 17 00:00:00 2001 From: Tomasz Bursztyka Date: Tue, 24 Apr 2012 18:10:00 +0300 Subject: [PATCH] wifi: Fixing autoscan device unref issues - stop_autoscan() should unref the device only when relevant, i.e. when interval and/or timeout have been set. - autoscan_scan_callback() should unref the device since it has been referenced in throw_wifi_scan() --- plugins/wifi.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/plugins/wifi.c b/plugins/wifi.c index 28b3563..9ce380b 100644 --- a/plugins/wifi.c +++ b/plugins/wifi.c @@ -214,8 +214,10 @@ static void stop_autoscan(struct connman_device *device) autoscan = wifi->autoscan; - if (autoscan->timeout > 0) - g_source_remove(autoscan->timeout); + if (autoscan->timeout == 0 && autoscan->interval == 0) + return; + + g_source_remove(autoscan->timeout); autoscan->timeout = 0; autoscan->interval = 0; @@ -281,6 +283,7 @@ static void autoscan_scan_callback(int result, DBG(""); connman_device_set_scanning(device, FALSE); + connman_device_unref(device); } static gboolean autoscan_timeout(gpointer data) -- 2.7.4