qcacld-3.0: Fix check for peer_num in wma_get_ll_stats_ext_buf

The current check for peer_num in wma_get_ll_stats_ext_buf is
incorrect and subtracts total_peer_len from WMI_SVC_MSG_MAX_SIZE
and then divides it by the size of peer stats struct.

Fix the check in such a way that peer num is not greater than
WMI_SVC_MSG_MAX_SIZE divided by the sum of total_peer_len
and size of peer stats struct.

Change-Id: Idd21852052b14e9b30785f2ac4acbd172dd923ef
CRs-Fixed: 2143891
This commit is contained in:
Vignesh Viswanathan 2017-11-15 15:13:56 +05:30 committed by snandini
parent 75b57743a4
commit bd1ad03c3d

View File

@ -771,8 +771,8 @@ static tSirLLStatsResults *wma_get_ll_stats_ext_buf(uint32_t *len,
excess_data = true;
break;
}
if (peer_num > (WMI_SVC_MSG_MAX_SIZE - total_peer_len) /
sizeof(struct sir_wifi_ll_ext_peer_stats)) {
if (peer_num > WMI_SVC_MSG_MAX_SIZE / (total_peer_len +
sizeof(struct sir_wifi_ll_ext_peer_stats))) {
excess_data = true;
break;
} else {