cfg80211: reject invalid IBSS BSSIDs in wext compat code
authorJohannes Berg <johannes.berg@intel.com>
Wed, 9 Apr 2014 20:32:16 +0000 (22:32 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 10 Apr 2014 08:09:16 +0000 (10:09 +0200)
Don't allow using a multicast address as the BSSID, that
isn't a valid configuration.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/wireless/ibss.c

index e16cc132c58ad3328f1f47b41f4585728d96ddff..f55f6ffcfcec59c296176181cf67dc44eb66dcab 100644 (file)
@@ -481,6 +481,9 @@ int cfg80211_ibss_wext_siwap(struct net_device *dev,
        if (is_zero_ether_addr(bssid) || is_broadcast_ether_addr(bssid))
                bssid = NULL;
 
+       if (bssid && !is_valid_ether_addr(bssid))
+               return -EINVAL;
+
        /* both automatic */
        if (!bssid && !wdev->wext.ibss.bssid)
                return 0;