summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbhinav Kumar <abhikuma@codeaurora.org>2019-06-06 00:51:01 +0530
committernshrivas <nshrivas@codeaurora.org>2019-06-06 08:55:05 -0700
commitdbf3d2eeb0e6f5d066ba43cdcb7a35cac583ea2c (patch)
treef35935a21648e6614c7abc7b5315797567d0543e
parent22a658d336cb1a5fea4757f941649d6bab2ee9ff (diff)
qcacld-3.0: Possible mem leak in sme_set_miracast
In sme_set_miracast If mac_ptr is NULL and qdf_mem_malloc(sizeof(*val)) returns success, driver returns without qdf_mem_free for val. This results in memory leak in sme_set_miracast. Allocate mem for val only if mac_ptr is valid. Change-Id: I98a6f0acc9452f7f04aa4949fc8efe21b260fac7 CRs-Fixed: 2465861
-rw-r--r--core/sme/src/common/sme_api.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/core/sme/src/common/sme_api.c b/core/sme/src/common/sme_api.c
index 0757c8f5d6e9..3cd0f5b367e0 100644
--- a/core/sme/src/common/sme_api.c
+++ b/core/sme/src/common/sme_api.c
@@ -13249,10 +13249,14 @@ QDF_STATUS sme_set_miracast(tHalHandle hal, uint8_t filter_type)
uint32_t *val;
tpAniSirGlobal mac_ptr = PMAC_STRUCT(hal);
+ if (!mac_ptr) {
+ sme_err("Invalid pointer");
+ return QDF_STATUS_E_NOMEM;
+ }
+
val = qdf_mem_malloc(sizeof(*val));
- if (NULL == val || NULL == mac_ptr) {
- QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
- "%s: Invalid pointer", __func__);
+ if (!val) {
+ sme_err("Mem allocation failed");
return QDF_STATUS_E_NOMEM;
}