diff options
Diffstat (limited to 'net/wireless/nl80211.c')
| -rw-r--r-- | net/wireless/nl80211.c | 9 | 
1 files changed, 7 insertions, 2 deletions
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index 48260c2d092..b3a476fe827 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c @@ -132,8 +132,7 @@ static const struct nla_policy nl80211_policy[NL80211_ATTR_MAX+1] = {  	[NL80211_ATTR_MESH_CONFIG] = { .type = NLA_NESTED },  	[NL80211_ATTR_SUPPORT_MESH_AUTH] = { .type = NLA_FLAG }, -	[NL80211_ATTR_HT_CAPABILITY] = { .type = NLA_BINARY, -					 .len = NL80211_HT_CAPABILITY_LEN }, +	[NL80211_ATTR_HT_CAPABILITY] = { .len = NL80211_HT_CAPABILITY_LEN },  	[NL80211_ATTR_MGMT_SUBTYPE] = { .type = NLA_U8 },  	[NL80211_ATTR_IE] = { .type = NLA_BINARY, @@ -1253,6 +1252,12 @@ static int nl80211_set_wiphy(struct sk_buff *skb, struct genl_info *info)  			goto bad_res;  		} +		if (netdev->ieee80211_ptr->iftype != NL80211_IFTYPE_AP && +		    netdev->ieee80211_ptr->iftype != NL80211_IFTYPE_P2P_GO) { +			result = -EINVAL; +			goto bad_res; +		} +  		nla_for_each_nested(nl_txq_params,  				    info->attrs[NL80211_ATTR_WIPHY_TXQ_PARAMS],  				    rem_txq_params) {  |