diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2009-02-10 21:25:40 +0100 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-02-13 13:45:24 -0500 |
commit | e4e5e2b0b83c816e581ca4671569306bcba77667 (patch) | |
tree | 5593639864683f2f937f9f9639d3e5181daeb92f /net | |
parent | a4727801004f255f589478b2d75ec00f0a9e30c5 (diff) | |
download | linux-stable-e4e5e2b0b83c816e581ca4671569306bcba77667.tar.gz linux-stable-e4e5e2b0b83c816e581ca4671569306bcba77667.tar.bz2 linux-stable-e4e5e2b0b83c816e581ca4671569306bcba77667.zip |
mac80211: properly validate/translate IW_AUTH_MFP values
Make sure nobody passes in bogus values, and translate the values
(although it isn't necessary).
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net')
-rw-r--r-- | net/mac80211/wext.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/net/mac80211/wext.c b/net/mac80211/wext.c index bad1cfbfdf18..acd5808b87f4 100644 --- a/net/mac80211/wext.c +++ b/net/mac80211/wext.c @@ -982,9 +982,21 @@ static int ieee80211_ioctl_siwauth(struct net_device *dev, break; } if (sdata->vif.type == NL80211_IFTYPE_STATION || - sdata->vif.type == NL80211_IFTYPE_ADHOC) - sdata->u.sta.mfp = data->value; - else + sdata->vif.type == NL80211_IFTYPE_ADHOC) { + switch (data->value) { + case IW_AUTH_MFP_DISABLED: + sdata->u.sta.mfp = IEEE80211_MFP_DISABLED; + break; + case IW_AUTH_MFP_OPTIONAL: + sdata->u.sta.mfp = IEEE80211_MFP_OPTIONAL; + break; + case IW_AUTH_MFP_REQUIRED: + sdata->u.sta.mfp = IEEE80211_MFP_REQUIRED; + break; + default: + ret = -EINVAL; + } + } else ret = -EOPNOTSUPP; break; default: |