diff options
author | jow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2012-03-05 17:52:46 +0000 |
---|---|---|
committer | jow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2012-03-05 17:52:46 +0000 |
commit | 9ca54da8398f055d2aa611cfbc29c06198748b34 (patch) | |
tree | c080f78a1a0fe2ff14ce5c4f429baca9ea41ad40 /package/iwinfo/src | |
parent | f4c4e108b208aea1dd48abaef347496ca31e71cf (diff) |
[package] iwinfo: fix integer overflow in assoclist rate reporting (#11073)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30825 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/iwinfo/src')
-rw-r--r-- | package/iwinfo/src/include/iwinfo.h | 2 | ||||
-rw-r--r-- | package/iwinfo/src/iwinfo_cli.c | 3 |
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; } |