summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2011-02-05 18:20:48 +0000
committerJo-Philipp Wich <jow@openwrt.org>2011-02-05 18:20:48 +0000
commit59992443bc0bc57b9601940824cbe1f285be07b9 (patch)
treef58c594f99963c177b14d7ab31499a4763f6130e
parent8cd629e14820d30c3f4ecd981b35c58b99cf592d (diff)
libiwinfo: fix integer overflow in dbm to mw conversion, also allow odd dbm numbers
-rw-r--r--contrib/package/iwinfo/src/iwinfo.h4
-rw-r--r--contrib/package/iwinfo/src/iwinfo_nl80211.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/contrib/package/iwinfo/src/iwinfo.h b/contrib/package/iwinfo/src/iwinfo.h
index a9889bd9f..aa2f8335a 100644
--- a/contrib/package/iwinfo/src/iwinfo.h
+++ b/contrib/package/iwinfo/src/iwinfo.h
@@ -64,8 +64,8 @@ struct iwinfo_assoclist_entry {
};
struct iwinfo_txpwrlist_entry {
- uint8_t dbm;
- uint8_t mw;
+ uint8_t dbm;
+ uint16_t mw;
};
struct iwinfo_freqlist_entry {
diff --git a/contrib/package/iwinfo/src/iwinfo_nl80211.c b/contrib/package/iwinfo/src/iwinfo_nl80211.c
index fa714e906..0f57d37f1 100644
--- a/contrib/package/iwinfo/src/iwinfo_nl80211.c
+++ b/contrib/package/iwinfo/src/iwinfo_nl80211.c
@@ -1170,7 +1170,7 @@ int nl80211_get_txpwrlist(const char *ifname, char *buf, int *len)
{
for( dbm_cur = 0, dbm_cnt = 0;
dbm_cur < dbm_max;
- dbm_cur += 2, dbm_cnt++ )
+ dbm_cur++, dbm_cnt++ )
{
entry.dbm = dbm_cur;
entry.mw = iwinfo_dbm2mw(dbm_cur);