Kaynağa Gözat

qcacld-3.0: Buffer overwrite in vendor scan request on n_ssid

In function __wlan_hdd_cfg80211_vendor_scan, when SCAN_SSIDS
and QCA_WLAN_VENDOR_ATTR_SCAN_FREQUENCIES are parsed, if the
number of SSIDs or number of channels are more then 255 in
netlink message, n_ssid and n_channels will get overflow
because n_ssid and n_channels are of type uint8_t.

Add a check to validate the max number of SCAN_SSIDs against
MAX_SCAN_SSID and max number of channels against MAX_CHANNEL.

Change-Id: Ib31dcc912fee8639e26d836d2fc5a32bf81fb43d
CRs-Fixed: 2153343
Ashish Kumar Dhanotiya 7 yıl önce
ebeveyn
işleme
d2b9064557
1 değiştirilmiş dosya ile 1 ekleme ve 1 silme
  1. 1 1
      core/hdd/src/wlan_hdd_scan.c

+ 1 - 1
core/hdd/src/wlan_hdd_scan.c

@@ -926,7 +926,7 @@ static int __wlan_hdd_cfg80211_vendor_scan(struct wiphy *wiphy,
 	struct cfg80211_scan_request *request = NULL;
 	struct nlattr *attr;
 	enum nl80211_band band;
-	uint8_t n_channels = 0, n_ssid = 0;
+	uint32_t n_channels = 0, n_ssid = 0;
 	uint32_t tmp, count, j;
 	size_t len, ie_len;
 	struct ieee80211_channel *chan;