aboutsummaryrefslogtreecommitdiffstats
path: root/package/iwinfo/src
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2012-03-05 17:52:46 +0000
committerJo-Philipp Wich <jow@openwrt.org>2012-03-05 17:52:46 +0000
commitf399616db8ceb42d2998a9c413a4c3c012cbe135 (patch)
treeb9510c3e31eeb7b217af44099e9e15492bae1f80 /package/iwinfo/src
parent102978693676067d36f7cd1f282dd6a802fe5dd4 (diff)
downloadupstream-f399616db8ceb42d2998a9c413a4c3c012cbe135.tar.gz
upstream-f399616db8ceb42d2998a9c413a4c3c012cbe135.tar.bz2
upstream-f399616db8ceb42d2998a9c413a4c3c012cbe135.zip
iwinfo: fix integer overflow in assoclist rate reporting (#11073)
SVN-Revision: 30825
Diffstat (limited to 'package/iwinfo/src')
-rw-r--r--package/iwinfo/src/include/iwinfo.h2
-rw-r--r--package/iwinfo/src/iwinfo_cli.c3
2 files changed, 3 insertions, 2 deletions
diff --git a/package/iwinfo/src/include/iwinfo.h b/package/iwinfo/src/include/iwinfo.h
index 9e78bab70e..868c10b359 100644
--- a/package/iwinfo/src/include/iwinfo.h
+++ b/package/iwinfo/src/include/iwinfo.h
@@ -61,7 +61,7 @@ extern const char *IWINFO_OPMODE_NAMES[];
struct iwinfo_rate_entry {
- uint16_t rate;
+ uint32_t rate;
int8_t mcs;
uint8_t is_40mhz:1;
uint8_t is_short_gi:1;
diff --git a/package/iwinfo/src/iwinfo_cli.c b/package/iwinfo/src/iwinfo_cli.c
index 0fdb21ec67..7ec5aef95c 100644
--- a/package/iwinfo/src/iwinfo_cli.c
+++ b/package/iwinfo/src/iwinfo_cli.c
@@ -134,7 +134,8 @@ static char * format_rate(int rate)
if (rate <= 0)
snprintf(buf, sizeof(buf), "unknown");
else
- snprintf(buf, sizeof(buf), "%.1f MBit/s", ((float)rate / 1000.0));
+ snprintf(buf, sizeof(buf), "%d.%d MBit/s",
+ rate / 1000, (rate % 1000) / 100);
return buf;
}