staging: rtl8712: fix buggy size calculation
authorJoshua Clayton <stillcompiling@gmail.com>
Thu, 6 Aug 2015 00:17:14 +0000 (17:17 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 7 Aug 2015 22:12:40 +0000 (15:12 -0700)
r8712_get_ndis_wlan_bssid_ex_sz has a "6 * sizeof(unsigned long)"
where the underlying struct has a 6 * unsigned char.
Simplify the calculation by just subtracting the variable part from
the size of the struct.

This also gets rid of a use of typedef NDIS_802_11_RATES_EX

Signed-off-by: Joshua Clayton <stillcompiling@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/rtl8712/rtl871x_mlme.c

index c044b0e55ba93d0c989031d52ce99f4008ae0630..6b3451f7017bab5790700b095d7bfb3fc694f31e 100644 (file)
@@ -210,17 +210,7 @@ void r8712_generate_random_ibss(u8 *pibss)
 
 uint r8712_get_ndis_wlan_bssid_ex_sz(struct ndis_wlan_bssid_ex *bss)
 {
-       uint t_len;
-
-       t_len = sizeof(u32) + 6 * sizeof(unsigned long) + 2 +
-                       sizeof(struct ndis_802_11_ssid) + sizeof(u32) +
-                       sizeof(s32) +
-                       sizeof(enum NDIS_802_11_NETWORK_TYPE) +
-                       sizeof(struct NDIS_802_11_CONFIGURATION) +
-                       sizeof(enum NDIS_802_11_NETWORK_INFRASTRUCTURE) +
-                       sizeof(NDIS_802_11_RATES_EX) +
-                       sizeof(u32) + bss->IELength;
-       return t_len;
+       return sizeof(*bss) + bss->IELength - MAX_IE_SZ;
 }
 
 u8 *r8712_get_capability_from_ie(u8 *ie)