diff options
author | Srinivas Dasari <dasaris@codeaurora.org> | 2016-07-05 19:43:22 +0530 |
---|---|---|
committer | Steve Kondik <steve@cyngn.com> | 2016-08-15 01:58:24 -0700 |
commit | 6d461a71c286611e9d8f22d93c9ad7e978f9d05b (patch) | |
tree | 26d06df2ea1fc0f6121be2e86c69a1eb8fb17fba /service | |
parent | 37cde44d44ac6b75860f2a595711c8f01c21ecb0 (diff) | |
download | android_frameworks_opt_net_wifi-6d461a71c286611e9d8f22d93c9ad7e978f9d05b.tar.gz android_frameworks_opt_net_wifi-6d461a71c286611e9d8f22d93c9ad7e978f9d05b.tar.bz2 android_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
Diffstat (limited to 'service')
-rw-r--r-- | service/java/com/android/server/wifi/WifiScanningServiceImpl.java | 17 |
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 a2ff1d8d8..f604651ed 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); |