cfg80211: Fix WEXT compat siwauth wpa and group cipher
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>
This commit is contained in:
parent
93a59d7527
commit
c5f8289cd9
|
@ -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)
|
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 |
|
if (wpa_versions & ~(IW_AUTH_WPA_VERSION_WPA |
|
||||||
IW_AUTH_WPA_VERSION_WPA2|
|
IW_AUTH_WPA_VERSION_WPA2|
|
||||||
IW_AUTH_WPA_VERSION_DISABLED))
|
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)
|
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)
|
if (cipher & IW_AUTH_CIPHER_WEP40)
|
||||||
wdev->wext.connect.crypto.cipher_group =
|
wdev->wext.connect.crypto.cipher_group =
|
||||||
WLAN_CIPHER_SUITE_WEP40;
|
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)
|
else if (cipher & IW_AUTH_CIPHER_AES_CMAC)
|
||||||
wdev->wext.connect.crypto.cipher_group =
|
wdev->wext.connect.crypto.cipher_group =
|
||||||
WLAN_CIPHER_SUITE_AES_CMAC;
|
WLAN_CIPHER_SUITE_AES_CMAC;
|
||||||
|
else if (cipher & IW_AUTH_CIPHER_NONE)
|
||||||
|
wdev->wext.connect.crypto.cipher_group = 0;
|
||||||
else
|
else
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue