cfg80211: Fix WEXT compat siwauth wpa and group cipher
authorJouni Malinen <j@w1.fi>
Sun, 1 Nov 2009 09:18:49 +0000 (11:18 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 2 Nov 2009 20:43:24 +0000 (15:43 -0500)
Neither of these commands should clear the current configuration value
if they return error. Furthermore, cfg80211_set_cipher_group() should
be able to handle IW_AUTH_CIPHER_NONE without reporting error.

Signed-off-by: Jouni Malinen <j@w1.fi>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/wireless/wext-compat.c

index 561a45c..41abcbd 100644 (file)
@@ -904,8 +904,6 @@ static int cfg80211_set_auth_alg(struct wireless_dev *wdev,
 
 static int cfg80211_set_wpa_version(struct wireless_dev *wdev, u32 wpa_versions)
 {
-       wdev->wext.connect.crypto.wpa_versions = 0;
-
        if (wpa_versions & ~(IW_AUTH_WPA_VERSION_WPA |
                             IW_AUTH_WPA_VERSION_WPA2|
                             IW_AUTH_WPA_VERSION_DISABLED))
@@ -933,8 +931,6 @@ static int cfg80211_set_wpa_version(struct wireless_dev *wdev, u32 wpa_versions)
 
 static int cfg80211_set_cipher_group(struct wireless_dev *wdev, u32 cipher)
 {
-       wdev->wext.connect.crypto.cipher_group = 0;
-
        if (cipher & IW_AUTH_CIPHER_WEP40)
                wdev->wext.connect.crypto.cipher_group =
                        WLAN_CIPHER_SUITE_WEP40;
@@ -950,6 +946,8 @@ static int cfg80211_set_cipher_group(struct wireless_dev *wdev, u32 cipher)
        else if (cipher & IW_AUTH_CIPHER_AES_CMAC)
                wdev->wext.connect.crypto.cipher_group =
                        WLAN_CIPHER_SUITE_AES_CMAC;
+       else if (cipher & IW_AUTH_CIPHER_NONE)
+               wdev->wext.connect.crypto.cipher_group = 0;
        else
                return -EINVAL;