diff options
| author | gaurank kathpalia <gkathpal@codeaurora.org> | 2018-06-12 12:01:50 +0530 |
|---|---|---|
| committer | nshrivas <nshrivas@codeaurora.org> | 2018-06-12 08:12:06 -0700 |
| commit | 1c54caaf87f6d68fda7d91745440302c8e8b5e43 (patch) | |
| tree | ec823d73fea40f954523e8dcb200cef66787e7ba | |
| parent | 2d4b97db6e85f4dda5c8de9565729034bc37d501 (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.c | 5 |
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, |
