summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgaurank kathpalia <gkathpal@codeaurora.org>2018-06-12 12:01:50 +0530
committernshrivas <nshrivas@codeaurora.org>2018-06-12 08:12:06 -0700
commit1c54caaf87f6d68fda7d91745440302c8e8b5e43 (patch)
treeec823d73fea40f954523e8dcb200cef66787e7ba
parent2d4b97db6e85f4dda5c8de9565729034bc37d501 (diff)
qcacld-3.0: Free channel-list memory from Sap_context
The driver allocates memory to channelist in the API sap_get_channel_list, and stores the pointer to channel list in sap_context, and frees the memory allocated for the same in scan request callback. But it may happen that before the callback, stop adapter calls wlansap_context_put and frees the memory allocated to sap context, without the mem free of channellist, which results in a mem leak. Fix is to add a NULL check to sap context and free the memory allocated to the sap context channel list in sap_cleanup_channel_list. Change-Id: I7030ca8325ae4c968db654bf14062e332f409b87 CRs-Fixed: 2254767
-rw-r--r--core/sap/src/sap_module.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/core/sap/src/sap_module.c b/core/sap/src/sap_module.c
index cee3dd91bce1..2f437148a32f 100644
--- a/core/sap/src/sap_module.c
+++ b/core/sap/src/sap_module.c
@@ -224,6 +224,11 @@ void wlansap_context_put(ptSapContext ctx)
for (i = 0; i < SAP_MAX_NUM_SESSION; i++) {
if (gp_sap_ctx[i] == ctx) {
if (qdf_atomic_dec_and_test(&sap_ctx_ref_count[i])) {
+ if (ctx->channelList) {
+ qdf_mem_free(ctx->channelList);
+ ctx->channelList = NULL;
+ ctx->num_of_channel = 0;
+ }
qdf_mem_free(ctx);
gp_sap_ctx[i] = NULL;
QDF_TRACE(QDF_MODULE_ID_SAP,