qcacld-3.0: Add sanity check for num_hw_modes and num_phy

Add sanity check for num_hw_modes and num_phy in wma_populate_soc_caps()
for WMI_SERVICE_READY_EXT_EVENTID.

Change-Id: I023d737449283f9ac092d278bde016b208b2c891
CRs-Fixed: 2119887
这个提交包含在:
Himanshu Agarwal
2017-10-11 18:08:56 +05:30
提交者 Nandini Suresh
父节点 8bcec57472
当前提交 a1539d3e22
修改 2 个文件,包含 18 行新增0 行删除

查看文件

@@ -118,6 +118,9 @@
/* Time(in ms) to detect DOS attack */
#define WMA_MGMT_FRAME_DETECT_DOS_TIMER 1000
#define MAX_NUM_HW_MODE 0xff
#define MAX_NUM_PHY 0xff
/**
* struct index_data_rate_type - non vht data rate type
* @mcs_index: mcs rate index

查看文件

@@ -5807,6 +5807,13 @@ static void wma_populate_soc_caps(t_wma_handle *wma_handle,
return;
}
if (param_buf->soc_hw_mode_caps->num_hw_modes >
MAX_NUM_HW_MODE) {
WMA_LOGE("Invalid num_hw_modes %u received from firmware",
param_buf->soc_hw_mode_caps->num_hw_modes);
return;
}
qdf_mem_copy(&phy_caps->num_hw_modes,
param_buf->soc_hw_mode_caps,
sizeof(WMI_SOC_MAC_PHY_HW_MODE_CAPS));
@@ -5881,6 +5888,14 @@ static void wma_populate_soc_caps(t_wma_handle *wma_handle,
/*
* next thing is to populate reg caps per phy
*/
if (param_buf->soc_hal_reg_caps->num_phy >
MAX_NUM_PHY) {
WMA_LOGE("Invalid num_phy %u received from firmware",
param_buf->soc_hal_reg_caps->num_phy);
return;
}
qdf_mem_copy(&phy_caps->num_phy_for_hal_reg_cap,
param_buf->soc_hal_reg_caps,
sizeof(WMI_SOC_HAL_REG_CAPABILITIES));