diff options
author | John W. Linville <linville@tuxdriver.com> | 2014-10-27 13:38:15 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2014-10-27 13:38:15 -0400 |
commit | 99c814066e75d09e6a38574c6c395f022a04b730 (patch) | |
tree | f56d74a72e0c0d738c0096e4dfe310d27c42c39b /net/wireless | |
parent | fad1dbc8efb4e51e121c745a99c0fb22b420a5c6 (diff) | |
parent | 11b2357d5dbce999803e9055f8c09829a8a87db4 (diff) |
Merge tag 'mac80211-for-john-2014-10-23' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211
Johannes Berg <johannes@sipsolutions.net> says:
"Here are a few fixes for the wireless stack: one fixes the
RTS rate, one for a debugfs file, one to return the correct
channel to userspace, a sanity check for a userspace value
and the remaining two are just documentation fixes."
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/wireless')
-rw-r--r-- | net/wireless/nl80211.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index cb9f5a44ffad..5839c85075f1 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c | |||
@@ -5927,6 +5927,7 @@ static int nl80211_channel_switch(struct sk_buff *skb, struct genl_info *info) | |||
5927 | int err; | 5927 | int err; |
5928 | bool need_new_beacon = false; | 5928 | bool need_new_beacon = false; |
5929 | int len, i; | 5929 | int len, i; |
5930 | u32 cs_count; | ||
5930 | 5931 | ||
5931 | if (!rdev->ops->channel_switch || | 5932 | if (!rdev->ops->channel_switch || |
5932 | !(rdev->wiphy.flags & WIPHY_FLAG_HAS_CHANNEL_SWITCH)) | 5933 | !(rdev->wiphy.flags & WIPHY_FLAG_HAS_CHANNEL_SWITCH)) |
@@ -5963,7 +5964,14 @@ static int nl80211_channel_switch(struct sk_buff *skb, struct genl_info *info) | |||
5963 | if (need_new_beacon && !info->attrs[NL80211_ATTR_CSA_IES]) | 5964 | if (need_new_beacon && !info->attrs[NL80211_ATTR_CSA_IES]) |
5964 | return -EINVAL; | 5965 | return -EINVAL; |
5965 | 5966 | ||
5966 | params.count = nla_get_u32(info->attrs[NL80211_ATTR_CH_SWITCH_COUNT]); | 5967 | /* Even though the attribute is u32, the specification says |
5968 | * u8, so let's make sure we don't overflow. | ||
5969 | */ | ||
5970 | cs_count = nla_get_u32(info->attrs[NL80211_ATTR_CH_SWITCH_COUNT]); | ||
5971 | if (cs_count > 255) | ||
5972 | return -EINVAL; | ||
5973 | |||
5974 | params.count = cs_count; | ||
5967 | 5975 | ||
5968 | if (!need_new_beacon) | 5976 | if (!need_new_beacon) |
5969 | goto skip_beacons; | 5977 | goto skip_beacons; |