summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRajeev Kumar <rajekuma@qca.qualcomm.com>2014-01-22 21:05:24 -0800
committerPrakash Dhavali <pdhavali@qca.qualcomm.com>2014-01-29 12:06:33 -0800
commit5da2ab8a81c7a783705250d47efb18b7f07f522d (patch)
treed20caf7e29970d27396fcbcda226547a21e062ad
parent514a5ce145638bc68a57bb67523108ff2d148993 (diff)
qcacld: Fix of ssid length 32 in batch scan result
Driver is dropping batch scan results of ssid length 32. Adding changes in WMA and HDD to handle ssid length 32 properly. Change-Id: I9586637237e43352727c10cd4a40160809e198cf CRs-fixed: 606062
-rw-r--r--CORE/HDD/inc/wlan_hdd_main.h2
-rw-r--r--CORE/MAC/inc/sirApi.h2
-rw-r--r--CORE/SERVICES/WMA/wma.c7
3 files changed, 6 insertions, 5 deletions
diff --git a/CORE/HDD/inc/wlan_hdd_main.h b/CORE/HDD/inc/wlan_hdd_main.h
index d19d2d6fa526..be1c3b19b7ff 100644
--- a/CORE/HDD/inc/wlan_hdd_main.h
+++ b/CORE/HDD/inc/wlan_hdd_main.h
@@ -762,7 +762,7 @@ typedef struct
/*BSSID*/
tANI_U8 bssid[SIR_MAC_ADDR_LEN];
/*SSID*/
- tANI_U8 ssid[SIR_MAX_SSID_SIZE];
+ tANI_U8 ssid[SIR_MAX_SSID_SIZE + 1];
/*Channel*/
tANI_U8 ch;
/*RSSI or Level*/
diff --git a/CORE/MAC/inc/sirApi.h b/CORE/MAC/inc/sirApi.h
index ec861cd16c22..c0a204d08be7 100644
--- a/CORE/MAC/inc/sirApi.h
+++ b/CORE/MAC/inc/sirApi.h
@@ -4662,7 +4662,7 @@ typedef struct
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 bssid[6]; /* BSSID */
- tANI_U8 ssid[32]; /* SSID */
+ tANI_U8 ssid[33]; /* SSID */
tANI_U8 ch; /* Channel */
tANI_U8 rssi; /* RSSI or Level */
/*Timestamp when Network was found. Used to calculate age based on timestamp
diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c
index 28a675ce26c3..a072c15b6754 100644
--- a/CORE/SERVICES/WMA/wma.c
+++ b/CORE/SERVICES/WMA/wma.c
@@ -14592,7 +14592,7 @@ wma_batch_scan_result_event_handler
tSirBatchScanNetworkInfo *pHddApMetaInfo;
tp_wma_handle wma = (tp_wma_handle) handle;
u_int32_t nextScanListOffset, nextApMetaInfoOffset;
- u_int8_t bssid[IEEE80211_ADDR_LEN], ssid[32], *ssid_temp;
+ u_int8_t bssid[IEEE80211_ADDR_LEN], ssid[33], *ssid_temp;
u_int32_t temp, count1, count2, scan_num, netinfo_num, total_size;
WMI_BATCH_SCAN_RESULT_EVENTID_param_tlvs *param_tlvs;
wmi_batch_scan_result_event_fixed_param *fix_param;
@@ -14686,7 +14686,7 @@ wma_batch_scan_result_event_handler
WMI_MAC_ADDR_TO_CHAR_ARRAY(&network_info->bssid, &bssid[0]);
vos_mem_copy(pHddApMetaInfo->bssid, bssid, IEEE80211_ADDR_LEN);
- if (network_info->ssid.ssid_len < 32)
+ if (network_info->ssid.ssid_len <= 32)
{
ssid_temp = (u_int8_t *)network_info->ssid.ssid;
for(temp = 0; temp < network_info->ssid.ssid_len; temp++)
@@ -14695,7 +14695,8 @@ wma_batch_scan_result_event_handler
ssid_temp++;
}
ssid[temp] = '\0';
- vos_mem_copy(pHddApMetaInfo->ssid, ssid, 32);
+ vos_mem_copy(pHddApMetaInfo->ssid, ssid,
+ (network_info->ssid.ssid_len + 1));
WMA_LOGD("ssid %s",pHddApMetaInfo->ssid);
}
else