diff options
author | Lokesh <l.kasana@samsung.com> | 2019-02-18 15:33:04 +0530 |
---|---|---|
committer | Lokesh <l.kasana@samsung.com> | 2019-02-18 15:54:34 +0530 |
commit | 9213fac0850e963c7c14a392e6c64792bb099e9d (patch) | |
tree | c6a2990810c3c002497c212aba447a46b419f126 | |
parent | 59296a074abb449c3a939d1effb4cacef14d79e0 (diff) | |
download | connman-accepted/tizen/unified/20190219.154224.tar.gz connman-accepted/tizen/unified/20190219.154224.tar.bz2 connman-accepted/tizen/unified/20190219.154224.zip |
Fix the dangling pointer(network) inside autosignalpoll_timeout().submit/tizen/20190218.125443accepted/tizen/unified/20190219.154224
Change-Id: I47d74342b861db29c2b36094539a84b73dce7e55
Signed-off-by: Lokesh <l.kasana@samsung.com>
-rw-r--r-- | packaging/connman.spec | 2 | ||||
-rw-r--r-- | plugins/wifi.c | 21 |
2 files changed, 14 insertions, 9 deletions
diff --git a/packaging/connman.spec b/packaging/connman.spec index e5e1b0e0..961f3ee4 100644 --- a/packaging/connman.spec +++ b/packaging/connman.spec @@ -5,7 +5,7 @@ Name: connman Version: 1.35 -Release: 30 +Release: 31 License: GPL-2.0+ Summary: Connection Manager Url: http://connman.net diff --git a/plugins/wifi.c b/plugins/wifi.c index 71727e69..9b2e9e12 100644 --- a/plugins/wifi.c +++ b/plugins/wifi.c @@ -3535,20 +3535,21 @@ static int network_signalpoll(struct connman_network *network) static gboolean autosignalpoll_timeout(gpointer data) { - struct connman_network *network = data; - int ret = 0; + if (!automaxspeed_timeout) { + DBG("automaxspeed_timeout is found to be zero. i.e. currently in disconnected state. !!"); + return FALSE; + } - automaxspeed_timeout = 0; - ret = network_signalpoll(network); + struct connman_network *network = data; + int ret = network_signalpoll(network); if (ret < 0) { DBG("Fail to get max speed !!"); + automaxspeed_timeout = 0; return FALSE; } - automaxspeed_timeout = g_timeout_add_seconds(30, autosignalpoll_timeout, network); - - return FALSE; + return TRUE; } #endif @@ -3904,7 +3905,11 @@ static void interface_state(GSupplicantInterface *interface) if (!automaxspeed_timeout) { DBG("Going to start signalpoll timer!!"); - autosignalpoll_timeout(network); + int ret = network_signalpoll(network); + if (ret < 0) + DBG("Fail to get max speed !!"); + else + automaxspeed_timeout = g_timeout_add_seconds(30, autosignalpoll_timeout, network); } #else /* though it should be already stopped: */ |