diff --git a/core/wma/src/wma_scan_roam.c b/core/wma/src/wma_scan_roam.c index 7bb88c5bdd043..faefda3e3892d 100644 --- a/core/wma/src/wma_scan_roam.c +++ b/core/wma/src/wma_scan_roam.c @@ -4131,6 +4131,17 @@ static int wma_group_num_bss_to_scan_id(const u_int8_t *cmd_param_info, t_cached_result = cached_result; t_scan_id_grp = &t_cached_result->result[0]; + if ((t_cached_result->num_scan_ids * + QDF_MIN(t_scan_id_grp->num_results, + param_buf->num_bssid_list)) > param_buf->num_bssid_list) { + WMA_LOGE("%s:num_scan_ids %d, num_results %d num_bssid_list %d", + __func__, + t_cached_result->num_scan_ids, + t_scan_id_grp->num_results, + param_buf->num_bssid_list); + return -EINVAL; + } + WMA_LOGD("%s: num_scan_ids:%d", __func__, t_cached_result->num_scan_ids); for (i = 0; i < t_cached_result->num_scan_ids; i++) {