net80211: fix possible overflow in IEEE80211_TU_TO_TICKS()

For hz=1000 any number, greater than 4194 causes integer overflow;
this change casts the number to uint64_t before operating with it.

Approved by:	adrian (mentor)
Differential Revision:	https://reviews.freebsd.org/D5268
This commit is contained in:
Andriy Voskoboinyk 2016-03-04 21:22:11 +00:00
parent 1a686265ee
commit 5a6b5f3c69
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=296393

View File

@ -85,7 +85,7 @@
#define IEEE80211_MS_TO_TU(x) (((x) * 1000) / 1024)
#define IEEE80211_TU_TO_MS(x) (((x) * 1024) / 1000)
/* XXX TODO: cap this at 1, in case hz is not 1000 */
#define IEEE80211_TU_TO_TICKS(x)(((x) * 1024 * hz) / (1000 * 1000))
#define IEEE80211_TU_TO_TICKS(x)(((uint64_t)(x) * 1024 * hz) / (1000 * 1000))
/*
* 802.11 control state is split into a common portion that maps