From 278c3b465e101021543a7085884ecc86d2cf2441 Mon Sep 17 00:00:00 2001 From: Qun Zhang Date: Thu, 19 Mar 2020 15:16:57 +0800 Subject: [PATCH] qcacld-3.0: Add pointer sanity check for wma layer APIs Add some pointer sanity check before use for wma layer APIs. Change-Id: I9712864b58731d8e8a8908ada359a907ed4fed5b CRs-Fixed: 2642567 --- core/wma/src/wma_features.c | 6 ++++-- core/wma/src/wma_main.c | 5 +++++ core/wma/src/wma_mgmt.c | 4 ++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/core/wma/src/wma_features.c b/core/wma/src/wma_features.c index 26a943de74a2..328bf257da37 100644 --- a/core/wma/src/wma_features.c +++ b/core/wma/src/wma_features.c @@ -5388,8 +5388,10 @@ void wma_update_set_key(uint8_t session_id, bool pairwise, return; } iface = &wma->interfaces[session_id]; - if (!iface) - wma_info("iface not found for session id %d", session_id); + if (!iface) { + wma_err("iface not found for session id %d", session_id); + return; + } if (cipher_type == WLAN_CRYPTO_CIPHER_AES_GMAC || cipher_type == WLAN_CRYPTO_CIPHER_AES_GMAC_256 || diff --git a/core/wma/src/wma_main.c b/core/wma/src/wma_main.c index 3b2be8568294..80dd625d6a08 100644 --- a/core/wma/src/wma_main.c +++ b/core/wma/src/wma_main.c @@ -7600,6 +7600,11 @@ static void wma_set_arp_req_stats(WMA_HANDLE handle, vdev = wlan_objmgr_get_vdev_by_id_from_psoc(wma_handle->psoc, req_buf->vdev_id, WLAN_LEGACY_WMA_ID); + if (!vdev) { + WMA_LOGE("Can't get vdev by vdev_id:%d", req_buf->vdev_id); + return; + } + if (!wma_is_vdev_started(vdev)) { WMA_LOGD("vdev id:%d is not started", req_buf->vdev_id); goto release_ref; diff --git a/core/wma/src/wma_mgmt.c b/core/wma/src/wma_mgmt.c index 185d771640f8..53cf2d369a2d 100644 --- a/core/wma/src/wma_mgmt.c +++ b/core/wma/src/wma_mgmt.c @@ -2387,6 +2387,10 @@ QDF_STATUS wma_set_ap_vdev_up(tp_wma_handle wma, uint8_t vdev_id) iface = &wma->interfaces[vdev_id]; vdev = iface->vdev; mlme_obj = wlan_vdev_mlme_get_cmpt_obj(vdev); + if (!mlme_obj) { + WMA_LOGE(FL("failed to get mlme_obj")); + return QDF_STATUS_E_INVAL; + } mlme_obj->proto.sta.assoc_id = 0; status = vdev_mgr_up_send(mlme_obj);