From: Eliad Peller <eliad@wizery.com>
Date: Tue, 15 May 2012 15:31:58 +0000 (+0300)
Subject: wlcore: compare ssid_len before comparing ssids
X-Git-Tag: firefly_0821_release~3680^2~2381^2~57^2~229^2~62
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=587cc286c8a8e22bbe4521c331b88d62d0cb1076;p=firefly-linux-kernel-4.4.55.git

wlcore: compare ssid_len before comparing ssids

When comparing 2 ssids the ssid_len must be taken
into account. Otherwise, a substring will be treated
as equal.

This bug might cause ssids to get scanned as
public ssids (rather than hidden), resulting in
broadcast probe request (instead of ssid-specific
ones)

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
---

diff --git a/drivers/net/wireless/ti/wlcore/scan.c b/drivers/net/wireless/ti/wlcore/scan.c
index 94668d8ba14e..e1dbe812615f 100644
--- a/drivers/net/wireless/ti/wlcore/scan.c
+++ b/drivers/net/wireless/ti/wlcore/scan.c
@@ -605,7 +605,9 @@ wl12xx_scan_sched_scan_ssid_list(struct wl1271 *wl,
 					continue;
 
 				for (j = 0; j < cmd->n_ssids; j++)
-					if (!memcmp(req->ssids[i].ssid,
+					if ((req->ssids[i].ssid_len ==
+					     req->ssids[j].ssid_len) &&
+					    !memcmp(req->ssids[i].ssid,
 						   cmd->ssids[j].ssid,
 						   req->ssids[i].ssid_len)) {
 						cmd->ssids[j].type =