From debe6ca5259c02172a2d3fa228ce1a3ba74db028 Mon Sep 17 00:00:00 2001 From: Ryan Hsu Date: Sun, 15 Jun 2014 22:38:18 -0700 Subject: qcacld: wma: fix memleak In case of SAP running in DFS channel, ic_curchan would be allocated while it was first brought up. When it detected the radar and restarted the SAP after randomly picking channel, the ic_curchan was still holding the memory allocated. Add sanity checking and release the memory if it was allocated. Change-Id: Ie9f92c636ad0e15444403ae2a5ed670eca23c554 CRs-fixed: 680517 --- CORE/SERVICES/WMA/wma.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c index ee2ff00cf40c..806c86079758 100644 --- a/CORE/SERVICES/WMA/wma.c +++ b/CORE/SERVICES/WMA/wma.c @@ -6914,6 +6914,12 @@ static VOS_STATUS wma_vdev_start(tp_wma_handle wma, return VOS_STATUS_E_FAILURE; } + if (wma->dfs_ic->ic_curchan) + { + OS_FREE(wma->dfs_ic->ic_curchan); + wma->dfs_ic->ic_curchan = NULL; + } + /* provide the current channel to DFS */ wma->dfs_ic->ic_curchan = wma_dfs_configure_channel(wma->dfs_ic,chan,chanmode,req); -- cgit v1.2.3