diff options
| author | Abhinav Kumar <abhikuma@codeaurora.org> | 2019-06-06 00:51:01 +0530 |
|---|---|---|
| committer | nshrivas <nshrivas@codeaurora.org> | 2019-06-06 08:55:05 -0700 |
| commit | dbf3d2eeb0e6f5d066ba43cdcb7a35cac583ea2c (patch) | |
| tree | f35935a21648e6614c7abc7b5315797567d0543e | |
| parent | 22a658d336cb1a5fea4757f941649d6bab2ee9ff (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.c | 10 |
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; } |
