Browse Source

iwinfo: fix integer overflow in assoclist rate reporting (#11073)

SVN-Revision: 30825
Jo-Philipp Wich 14 years ago
parent
commit
f399616db8
3 changed files with 4 additions and 3 deletions
  1. 1 1
      package/iwinfo/Makefile
  2. 1 1
      package/iwinfo/src/include/iwinfo.h
  3. 2 1
      package/iwinfo/src/iwinfo_cli.c

+ 1 - 1
package/iwinfo/Makefile

@@ -7,7 +7,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libiwinfo
-PKG_RELEASE:=31
+PKG_RELEASE:=32
 
 PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
 PKG_CONFIG_DEPENDS := \

+ 1 - 1
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;

+ 2 - 1
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;
 }