staging: rtl8723au: Only validate vendor specific ies, when they it is vendor specific
authorJes Sorensen <Jes.Sorensen@redhat.com>
Tue, 24 Jun 2014 13:03:57 +0000 (15:03 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 24 Jun 2014 17:51:02 +0000 (13:51 -0400)
Don't run rtw_validate_vendor_specific_ies() on anything but
WLAN_EID_VENDOR_SPECIFIC. In addition use the proper
WLAN_OUI_TYPE_MICROSOFT_* definitions.

Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/rtl8723au/core/rtw_mlme_ext.c

index 4b769d55bb44b1dc95bff76c3bd256688295af66..88cf1fd065a54a3cd327e88ff02d014ea97f3c24 100644 (file)
@@ -1204,11 +1204,11 @@ static int rtw_validate_vendor_specific_ies(const u8 *pos, int elen)
                /* Microsoft/Wi-Fi information elements are further typed and
                 * subtyped */
                switch (pos[3]) {
-               case 1:
+               case WLAN_OUI_TYPE_MICROSOFT_WPA:
                        /* Microsoft OUI (00:50:F2) with OUI Type 1:
                         * real WPA information element */
                        break;
-               case WME_OUI_TYPE: /* this is a Wi-Fi WME info. element */
+               case WLAN_OUI_TYPE_MICROSOFT_WMM:
                        if (elen < 5) {
                                DBG_8723A("short WME information element "
                                          "ignored (len =%i)\n", elen);
@@ -1227,7 +1227,7 @@ static int rtw_validate_vendor_specific_ies(const u8 *pos, int elen)
                                return -EINVAL;
                        }
                        break;
-               case 4:
+               case WLAN_OUI_TYPE_MICROSOFT_WPS:
                        /* Wi-Fi Protected Setup (WPS) IE */
                        break;
                default:
@@ -1289,6 +1289,7 @@ static int rtw_validate_frame_ies(const u8 *start, uint len)
                case WLAN_EID_CHALLENGE:
                case WLAN_EID_ERP_INFO:
                case WLAN_EID_EXT_SUPP_RATES:
+                       break;
                case WLAN_EID_VENDOR_SPECIFIC:
                        if (rtw_validate_vendor_specific_ies(pos, elen))
                                unknown++;