Jelajahi Sumber

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
Vignesh U 6 tahun lalu
induk
melakukan
c224b9e9c7
2 mengubah file dengan 5 tambahan dan 5 penghapusan
  1. 2 2
      wmi/src/wmi_unified_dfs_api.c
  2. 3 3
      wmi/src/wmi_unified_reg_api.c

+ 2 - 2
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);
 

+ 3 - 3
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);