|
@@ -4527,8 +4527,12 @@ static int nl80211_join_ibss(struct sk_buff *skb, struct genl_info *info)
|
|
|
|
|
|
wiphy = &rdev->wiphy;
|
|
wiphy = &rdev->wiphy;
|
|
|
|
|
|
- if (info->attrs[NL80211_ATTR_MAC])
|
|
|
|
|
|
+ if (info->attrs[NL80211_ATTR_MAC]) {
|
|
ibss.bssid = nla_data(info->attrs[NL80211_ATTR_MAC]);
|
|
ibss.bssid = nla_data(info->attrs[NL80211_ATTR_MAC]);
|
|
|
|
+
|
|
|
|
+ if (!is_valid_ether_addr(ibss.bssid))
|
|
|
|
+ return -EINVAL;
|
|
|
|
+ }
|
|
ibss.ssid = nla_data(info->attrs[NL80211_ATTR_SSID]);
|
|
ibss.ssid = nla_data(info->attrs[NL80211_ATTR_SSID]);
|
|
ibss.ssid_len = nla_len(info->attrs[NL80211_ATTR_SSID]);
|
|
ibss.ssid_len = nla_len(info->attrs[NL80211_ATTR_SSID]);
|
|
|
|
|