From d875181af15571a515ad61426faadebaa2e518ed Mon Sep 17 00:00:00 2001 From: Bing Sun Date: Tue, 22 Mar 2022 17:03:28 +0800 Subject: [PATCH] qcacld-3.0: Check g_son_cbs before accessing it If g_son_cbs[*] is null. do not access fields in g_son_cbs[*]. Change-Id: I83314adf3110885f8ce6af0b3b1317c0c0ebd6ae CRs-Fixed: 3053553 --- components/son/dispatcher/src/son_api.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/components/son/dispatcher/src/son_api.c b/components/son/dispatcher/src/son_api.c index 835f09056a..6a9501d678 100644 --- a/components/son/dispatcher/src/son_api.c +++ b/components/son/dispatcher/src/son_api.c @@ -1123,6 +1123,10 @@ int wlan_son_cbs_enable(struct wlan_objmgr_vdev *vdev) QDF_STATUS status; cbs = g_son_cbs[wlan_vdev_get_id(vdev)]; + if (!cbs) { + son_err("invalid cbs"); + return -EINVAL; + } psoc = wlan_vdev_get_psoc(vdev); if (!psoc) { son_err("invalid psoc"); @@ -1217,7 +1221,7 @@ int wlan_son_cbs_disable(struct wlan_objmgr_vdev *vdev) struct son_cbs *cbs; if (!vdev) { - son_err("invalid psoc"); + son_err("invalid vdev"); return -EINVAL; } psoc = wlan_vdev_get_psoc(vdev); @@ -1226,7 +1230,7 @@ int wlan_son_cbs_disable(struct wlan_objmgr_vdev *vdev) return -EINVAL; } cbs = g_son_cbs[wlan_vdev_get_id(vdev)]; - if (!cbs->vdev) { + if (!cbs || !cbs->vdev) { son_err("vdev null"); return -EINVAL; } @@ -1260,7 +1264,7 @@ int wlan_son_set_cbs(struct wlan_objmgr_vdev *vdev, { son_debug("Enable: %u", enable); - if (!vdev && !g_son_cbs[wlan_vdev_get_id(vdev)]) + if (!vdev || !g_son_cbs[wlan_vdev_get_id(vdev)]) return -EINVAL; if (enable)