From 9ae5e2cd2fe99bd6b963596290c9a69baebfdf16 Mon Sep 17 00:00:00 2001 From: Bala Venkatesh Date: Fri, 31 May 2019 12:55:11 +0530 Subject: [PATCH] qcacld-3.0: Avoid NULL pointer dereference Function mlme_get_dynamic_oce_flags can return the NULL value. Avoid and check for NULL pointer in the callers. Change-Id: Idc83a9e5dea812a73fed24de3aa2c2c49436f7d1 CRs-Fixed: 2462716 --- components/mlme/dispatcher/src/wlan_mlme_api.c | 2 ++ core/sme/src/csr/csr_api_roam.c | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/components/mlme/dispatcher/src/wlan_mlme_api.c b/components/mlme/dispatcher/src/wlan_mlme_api.c index 5620217684e6..17c2bdb94ebc 100644 --- a/components/mlme/dispatcher/src/wlan_mlme_api.c +++ b/components/mlme/dispatcher/src/wlan_mlme_api.c @@ -1956,6 +1956,8 @@ static void wlan_mlme_send_oce_flags_fw(struct wlan_objmgr_pdev *pdev, if (wlan_vdev_mlme_get_opmode(vdev) == QDF_STA_MODE) { dynamic_fw_value = mlme_get_dynamic_oce_flags(vdev); + if (!dynamic_fw_value) + return; if (*updated_fw_value == *dynamic_fw_value) { mlme_legacy_debug("Current FW flags matches with updated value."); return; diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index 2272069efe60..98325eb0fc14 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -16821,8 +16821,8 @@ static void csr_store_oce_cfg_flags_in_vdev(struct mac_context *mac, return; vdev_dynamic_oce = mlme_get_dynamic_oce_flags(vdev); - - *vdev_dynamic_oce = mac->mlme_cfg->oce.feature_bitmap; + if (vdev_dynamic_oce) + *vdev_dynamic_oce = mac->mlme_cfg->oce.feature_bitmap; wlan_objmgr_vdev_release_ref(vdev, WLAN_LEGACY_MAC_ID); }