From: Johannes Berg Date: Tue, 10 Aug 2010 07:46:42 +0000 (+0200) Subject: cfg80211: check if WEP is available for shared key auth X-Git-Tag: v2.6.37-rc1~147^2~679^2~51 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=afea0b7af7a0c070da8b2029d721abc930e5f96f;p=~emulex%2Finfiniband.git cfg80211: check if WEP is available for shared key auth When shared key auth is requested, cfg80211 should verify that the device is capable of WEP crypto which is required. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville --- diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index 37902a54e9c..bb5b78eebeb 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c @@ -3572,6 +3572,21 @@ static int nl80211_authenticate(struct sk_buff *skb, struct genl_info *info) if (err) goto unlock_rtnl; + if (key.idx >= 0) { + int i; + bool ok = false; + for (i = 0; i < rdev->wiphy.n_cipher_suites; i++) { + if (key.p.cipher == rdev->wiphy.cipher_suites[i]) { + ok = true; + break; + } + } + if (!ok) { + err = -EINVAL; + goto out; + } + } + if (!rdev->ops->auth) { err = -EOPNOTSUPP; goto out;