summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRajeev Kumar <rajekuma@qca.qualcomm.com>2014-02-03 18:42:39 -0800
committerPrakash Dhavali <pdhavali@qca.qualcomm.com>2014-02-05 21:06:49 -0800
commitc4f66e4a8086f7656879177a0f4145d760b01992 (patch)
treeed2067693c975e4eddef57b88240bc74bcf0ad5c
parentc28b7ead75edf1142de66ce7464291e9ef12938b (diff)
qcacld: Fix of double free panic in SLUB debug build
In CLD SLUB debug build double free is considered as panic so whenever a pointer which is not allocated using VOS API is freed using VOS API SLUB debug driver treats it as a double free and calls panic. Change-Id: I6ee312b9ef049c1319324e1578a901f29baa057b CRs-Fixed: 611035
-rw-r--r--CORE/SERVICES/WMA/wma.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c
index 40c9dbb38f74..e992fe5a024a 100644
--- a/CORE/SERVICES/WMA/wma.c
+++ b/CORE/SERVICES/WMA/wma.c
@@ -3747,7 +3747,6 @@ VOS_STATUS wma_send_snr_request(tp_wma_handle wma_handle, void *pGetRssiReq)
pRssiBkUp = adf_os_mem_alloc(NULL, sizeof(tAniGetRssiReq));
if(!pRssiBkUp) {
WMA_LOGE("Failed to allocate memory for tAniGetRssiReq");
- vos_mem_free(pRssiBkUp);
wma_handle->pGetRssiReq = NULL;
return VOS_STATUS_E_FAILURE;
}
@@ -3761,6 +3760,8 @@ VOS_STATUS wma_send_snr_request(tp_wma_handle wma_handle, void *pGetRssiReq)
buf = wmi_buf_alloc(wma_handle->wmi_handle, len);
if (!buf) {
WMA_LOGE("%s: wmi_buf_alloc failed", __func__);
+ adf_os_mem_free(pRssiBkUp);
+ wma_handle->pGetRssiReq = NULL;
return VOS_STATUS_E_FAILURE;
}
@@ -3771,7 +3772,7 @@ VOS_STATUS wma_send_snr_request(tp_wma_handle wma_handle, void *pGetRssiReq)
if (wmi_unified_cmd_send(wma_handle->wmi_handle, buf, len,WMI_REQUEST_STATS_CMDID)) {
WMA_LOGE("Failed to send host stats request to fw");
wmi_buf_free(buf);
- vos_mem_free(pRssiBkUp);
+ adf_os_mem_free(pRssiBkUp);
wma_handle->pGetRssiReq = NULL;
return VOS_STATUS_E_FAILURE;
}