summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSrinivas Dasari <dasaris@codeaurora.org>2016-07-05 19:43:22 +0530
committerSteve Kondik <steve@cyngn.com>2016-08-15 01:58:24 -0700
commit6d461a71c286611e9d8f22d93c9ad7e978f9d05b (patch)
tree26d06df2ea1fc0f6121be2e86c69a1eb8fb17fba
parent37cde44d44ac6b75860f2a595711c8f01c21ecb0 (diff)
downloadframeworks_opt_net_wifi-6d461a71c286611e9d8f22d93c9ad7e978f9d05b.tar.gz
frameworks_opt_net_wifi-6d461a71c286611e9d8f22d93c9ad7e978f9d05b.tar.bz2
frameworks_opt_net_wifi-6d461a71c286611e9d8f22d93c9ad7e978f9d05b.zip
Do not process the results array if no results are received
WifiNative might send empty results if it doesn't get any scan results from WifiHAL, which results a null array. Check if the array is null before accessing to avoid possible null pointer access. Change-Id: I2911e41c65df96b768c6302a70434cda47828d00 CRs-Fixed: 1037782
-rw-r--r--service/java/com/android/server/wifi/WifiScanningServiceImpl.java17
1 files changed, 6 insertions, 11 deletions
diff --git a/service/java/com/android/server/wifi/WifiScanningServiceImpl.java b/service/java/com/android/server/wifi/WifiScanningServiceImpl.java
index a2ff1d8..f604651 100644
--- a/service/java/com/android/server/wifi/WifiScanningServiceImpl.java
+++ b/service/java/com/android/server/wifi/WifiScanningServiceImpl.java
@@ -443,17 +443,8 @@ public class WifiScanningServiceImpl extends IWifiScanner.Stub {
case WifiScanner.CMD_CONFIGURE_WIFI_CHANGE:
configureWifiChange((WifiScanner.WifiChangeSettings) msg.obj);
break;
- case CMD_SCAN_RESULTS_AVAILABLE: {
- ScanData[] results = WifiNative.getScanResults(/* flush = */ true);
- if (results == null) {
- loge("Wifi HAL SCAN results NULL");
- break;
- }
- Collection<ClientInfo> clients = mClients.values();
- for (ClientInfo ci2 : clients) {
- ci2.reportScanResults(results);
- }
- }
+ case CMD_SCAN_RESULTS_AVAILABLE:
+ reportScanResults();
break;
case CMD_FULL_SCAN_RESULTS: {
ScanResult result = (ScanResult) msg.obj;
@@ -1318,6 +1309,10 @@ public class WifiScanningServiceImpl extends IWifiScanner.Stub {
boolean reportScanResults() {
ScanData results[] = WifiNative.getScanResults(/* flush = */ true);
+ if (results == null) {
+ loge("No SCAN results received");
+ return false;
+ }
Collection<ClientInfo> clients = mClients.values();
for (ClientInfo ci2 : clients) {
ci2.reportScanResults(results);