qcacmn: Add sanity check for phase values length
Add length sanity check for ibf cal value & phase delta to ensure HOST always align with target defined length. Also remove the REPORT_AOA_FOR_RCC flag usage. Change-Id: I06e4a430143df1534849b8ec974e38932cff3ef1 CRs-Fixed: 2997030
This commit is contained in:

committed by
Madan Koyyalamudi

parent
a6e6827a7a
commit
799ebe40d7
@@ -228,7 +228,6 @@ static QDF_STATUS send_cfr_rcc_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef REPORT_AOA_FOR_RCC
|
|
||||||
static QDF_STATUS
|
static QDF_STATUS
|
||||||
extract_cfr_phase_param_tlv(wmi_unified_t wmi_handle,
|
extract_cfr_phase_param_tlv(wmi_unified_t wmi_handle,
|
||||||
void *evt_buf,
|
void *evt_buf,
|
||||||
@@ -257,27 +256,28 @@ extract_cfr_phase_param_tlv(wmi_unified_t wmi_handle,
|
|||||||
|
|
||||||
param->chain_phase_mask = (phase_event->chainInfo >> 16) & 0xFFFF;
|
param->chain_phase_mask = (phase_event->chainInfo >> 16) & 0xFFFF;
|
||||||
|
|
||||||
|
if ((sizeof(param->ibf_cal_val)) <
|
||||||
|
(sizeof(phase_event->perChainIbfCalVal))) {
|
||||||
|
wmi_err("ibf_cal_val can not hold all values from event data");
|
||||||
|
return QDF_STATUS_E_RANGE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((sizeof(param->phase_delta)) <
|
||||||
|
(sizeof(phase_event->phasedelta))) {
|
||||||
|
wmi_err("phase_delta can not hold all values from event data");
|
||||||
|
return QDF_STATUS_E_RANGE;
|
||||||
|
}
|
||||||
|
|
||||||
qdf_mem_copy(param->ibf_cal_val,
|
qdf_mem_copy(param->ibf_cal_val,
|
||||||
phase_event->perChainIbfCalVal,
|
phase_event->perChainIbfCalVal,
|
||||||
(sizeof(uint32_t) * WMI_MAX_CHAINS_FOR_AOA_RCC));
|
sizeof(param->ibf_cal_val));
|
||||||
|
|
||||||
qdf_mem_copy(param->phase_delta,
|
qdf_mem_copy(param->phase_delta,
|
||||||
phase_event->phasedelta,
|
phase_event->phasedelta,
|
||||||
(sizeof(uint32_t) *
|
sizeof(param->phase_delta));
|
||||||
WMI_MAX_CHAINS_FOR_AOA_RCC *
|
|
||||||
MAX_AOA_PHASEDELTA));
|
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
static QDF_STATUS
|
|
||||||
extract_cfr_phase_param_tlv(wmi_unified_t wmi_handle,
|
|
||||||
void *evt_buf,
|
|
||||||
struct wmi_cfr_phase_delta_param *param)
|
|
||||||
{
|
|
||||||
return QDF_STATUS_E_NOSUPPORT;
|
|
||||||
}
|
|
||||||
#endif /* REPORT_AOA_FOR_RCC */
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static QDF_STATUS send_peer_cfr_capture_cmd_tlv(wmi_unified_t wmi_handle,
|
static QDF_STATUS send_peer_cfr_capture_cmd_tlv(wmi_unified_t wmi_handle,
|
||||||
|
@@ -16081,10 +16081,8 @@ event_ids[wmi_roam_scan_chan_list_id] =
|
|||||||
#endif
|
#endif
|
||||||
event_ids[wmi_pdev_get_halphy_cal_status_event_id] =
|
event_ids[wmi_pdev_get_halphy_cal_status_event_id] =
|
||||||
WMI_PDEV_GET_HALPHY_CAL_STATUS_EVENTID;
|
WMI_PDEV_GET_HALPHY_CAL_STATUS_EVENTID;
|
||||||
#ifdef REPORT_AOA_FOR_RCC
|
|
||||||
event_ids[wmi_pdev_aoa_phasedelta_event_id] =
|
event_ids[wmi_pdev_aoa_phasedelta_event_id] =
|
||||||
WMI_PDEV_AOA_PHASEDELTA_EVENTID;
|
WMI_PDEV_AOA_PHASEDELTA_EVENTID;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef WLAN_FEATURE_LINK_LAYER_STATS
|
#ifdef WLAN_FEATURE_LINK_LAYER_STATS
|
||||||
@@ -16499,10 +16497,8 @@ static void populate_tlv_service(uint32_t *wmi_service)
|
|||||||
WMI_SERVICE_RTT_AP_INITIATOR_STAGGERED_MODE_SUPPORTED;
|
WMI_SERVICE_RTT_AP_INITIATOR_STAGGERED_MODE_SUPPORTED;
|
||||||
wmi_service[wmi_service_rtt_ap_initiator_bursted_mode_supported] =
|
wmi_service[wmi_service_rtt_ap_initiator_bursted_mode_supported] =
|
||||||
WMI_SERVICE_RTT_AP_INITIATOR_BURSTED_MODE_SUPPORTED;
|
WMI_SERVICE_RTT_AP_INITIATOR_BURSTED_MODE_SUPPORTED;
|
||||||
#ifdef REPORT_AOA_FOR_RCC
|
|
||||||
wmi_service[wmi_service_aoa_for_rcc_supported] =
|
wmi_service[wmi_service_aoa_for_rcc_supported] =
|
||||||
WMI_SERVICE_AOA_FOR_RCC_SUPPORTED;
|
WMI_SERVICE_AOA_FOR_RCC_SUPPORTED;
|
||||||
#endif
|
|
||||||
#ifdef WLAN_FEATURE_P2P_P2P_STA
|
#ifdef WLAN_FEATURE_P2P_P2P_STA
|
||||||
wmi_service[wmi_service_p2p_p2p_cc_support] =
|
wmi_service[wmi_service_p2p_p2p_cc_support] =
|
||||||
WMI_SERVICE_P2P_P2P_CONCURRENCY_SUPPORT;
|
WMI_SERVICE_P2P_P2P_CONCURRENCY_SUPPORT;
|
||||||
|
Reference in New Issue
Block a user