cfg80211: fix disabling WPA via wext (SIOCSIWAUTH)
cfg80211_set_wpa_version completely missed the use case when disabling WPA, considering IW_AUTH_WPA_VERSION_DISABLED an invalid argument. This caused weird error messages in wpa_supplicant. Signed-off-by: Gábor Stefanik <netrolller.3d@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Родитель
4b9631a473
Коммит
323d566eae
|
@ -880,9 +880,19 @@ 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_WPA2|
|
||||
IW_AUTH_WPA_VERSION_DISABLED))
|
||||
return -EINVAL;
|
||||
|
||||
if ((wpa_versions & IW_AUTH_WPA_VERSION_DISABLED) &&
|
||||
(wpa_versions & (IW_AUTH_WPA_VERSION_WPA|
|
||||
IW_AUTH_WPA_VERSION_WPA2)))
|
||||
return -EINVAL;
|
||||
|
||||
if (wpa_versions & IW_AUTH_WPA_VERSION_DISABLED)
|
||||
wdev->wext.connect.crypto.wpa_versions &=
|
||||
~(NL80211_WPA_VERSION_1|NL80211_WPA_VERSION_2);
|
||||
|
||||
if (wpa_versions & IW_AUTH_WPA_VERSION_WPA)
|
||||
wdev->wext.connect.crypto.wpa_versions |=
|
||||
NL80211_WPA_VERSION_1;
|
||||
|
|
Загрузка…
Ссылка в новой задаче