From c224b9e9c7064978d440e2a47315c2b163f71222 Mon Sep 17 00:00:00 2001 From: Vignesh U Date: Thu, 26 Jul 2018 14:08:29 +0530 Subject: [PATCH] qcacmn: Fix KW issues Potential NULL pointer dereferences of wmi_handle are found in these functions: wmi_extract_dfs_cac_complete_event() wmi_extract_dfs_radar_detection_event() wmi_extract_reg_chan_list_update_event() wmi_extract_reg_11d_new_cc_event() wmi_extract_reg_ch_avoid_event() Introduce wmi_handle NULL check in the above functions. Change-Id: I30a842818dff400b8648293f65794ff382eb24e7 CRs-Fixed: 2286258 --- wmi/src/wmi_unified_dfs_api.c | 4 ++-- wmi/src/wmi_unified_reg_api.c | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/wmi/src/wmi_unified_dfs_api.c b/wmi/src/wmi_unified_dfs_api.c index fd1769f081..57ae8ff706 100644 --- a/wmi/src/wmi_unified_dfs_api.c +++ b/wmi/src/wmi_unified_dfs_api.c @@ -35,7 +35,7 @@ QDF_STATUS wmi_extract_dfs_cac_complete_event(void *wmi_hdl, { struct wmi_unified *wmi_handle = (struct wmi_unified *)wmi_hdl; - if (wmi_handle->ops->extract_dfs_cac_complete_event) + if (wmi_handle && wmi_handle->ops->extract_dfs_cac_complete_event) return wmi_handle->ops->extract_dfs_cac_complete_event( wmi_handle, evt_buf, vdev_id, len); @@ -50,7 +50,7 @@ QDF_STATUS wmi_extract_dfs_radar_detection_event(void *wmi_hdl, { struct wmi_unified *wmi_handle = (struct wmi_unified *)wmi_hdl; - if (wmi_handle->ops->extract_dfs_radar_detection_event) + if (wmi_handle && wmi_handle->ops->extract_dfs_radar_detection_event) return wmi_handle->ops->extract_dfs_radar_detection_event( wmi_handle, evt_buf, radar_found, len); diff --git a/wmi/src/wmi_unified_reg_api.c b/wmi/src/wmi_unified_reg_api.c index fba7a8f168..67ef9b1602 100644 --- a/wmi/src/wmi_unified_reg_api.c +++ b/wmi/src/wmi_unified_reg_api.c @@ -35,7 +35,7 @@ QDF_STATUS wmi_extract_reg_chan_list_update_event(void *wmi_hdl, { struct wmi_unified *wmi_handle = (struct wmi_unified *)wmi_hdl; - if (wmi_handle->ops->extract_reg_chan_list_update_event) + if (wmi_handle && wmi_handle->ops->extract_reg_chan_list_update_event) return wmi_handle->ops->extract_reg_chan_list_update_event (wmi_handle, evt_buf, reg_info, len); @@ -87,7 +87,7 @@ QDF_STATUS wmi_extract_reg_11d_new_cc_event(void *wmi_hdl, { struct wmi_unified *wmi_handle = (struct wmi_unified *)wmi_hdl; - if (wmi_handle->ops->extract_reg_11d_new_country_event) + if (wmi_handle && wmi_handle->ops->extract_reg_11d_new_country_event) return wmi_handle->ops->extract_reg_11d_new_country_event( wmi_handle, evt_buf, reg_11d_new_cc, len); @@ -115,7 +115,7 @@ QDF_STATUS wmi_extract_reg_ch_avoid_event(void *wmi_hdl, { struct wmi_unified *wmi_handle = (struct wmi_unified *)wmi_hdl; - if (wmi_handle->ops->extract_reg_ch_avoid_event) + if (wmi_handle && wmi_handle->ops->extract_reg_ch_avoid_event) return wmi_handle->ops->extract_reg_ch_avoid_event( wmi_handle, evt_buf, ch_avoid_ind, len);