diff options
| author | Rajeev Kumar <rajekuma@qca.qualcomm.com> | 2014-01-22 21:05:24 -0800 |
|---|---|---|
| committer | Prakash Dhavali <pdhavali@qca.qualcomm.com> | 2014-01-29 12:06:33 -0800 |
| commit | 5da2ab8a81c7a783705250d47efb18b7f07f522d (patch) | |
| tree | d20caf7e29970d27396fcbcda226547a21e062ad | |
| parent | 514a5ce145638bc68a57bb67523108ff2d148993 (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.h | 2 | ||||
| -rw-r--r-- | CORE/MAC/inc/sirApi.h | 2 | ||||
| -rw-r--r-- | CORE/SERVICES/WMA/wma.c | 7 |
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 |
