summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVinay Kalia <vinaykalia@google.com>2017-07-28 15:09:57 -0700
committerandroid-build-team Robot <android-build-team-robot@google.com>2017-08-22 23:17:30 +0000
commitbf1af88d8e101973a128d8ed6e2a4543e2fa834b (patch)
treea5a3f1671b6d3bb4ff1119285fd150888c6a6040
parent1333c1e2a863f8f8ce9fe6f1f93929506f361ebc (diff)
downloadbase-bf1af88d8e101973a128d8ed6e2a4543e2fa834b.tar.gz
Fix BLE scan leaks
If an app starts multiple scans with same callback then there is a collision in mLeScanClients hash map which results in leaking first scan. This change fixes it by not allowing the second scan with same callback. BUG: 62389939 BUG: 38198694 Test: Tested applications which started multiple scans with same callback. Change-Id: I569069a40b6f8b4b8bb070731225e732c6b23ec8 (cherry picked from commit 9722971cb4a79e37165f636f9dd057707d2e620a) (cherry picked from commit c2fd144218d035f45e7063134f4c644a1dc36535)
-rw-r--r--core/java/android/bluetooth/le/BluetoothLeScanner.java3
1 files changed, 2 insertions, 1 deletions
diff --git a/core/java/android/bluetooth/le/BluetoothLeScanner.java b/core/java/android/bluetooth/le/BluetoothLeScanner.java
index 1eac395bd06c..e3bc78e5a2bb 100644
--- a/core/java/android/bluetooth/le/BluetoothLeScanner.java
+++ b/core/java/android/bluetooth/le/BluetoothLeScanner.java
@@ -205,7 +205,8 @@ public final class BluetoothLeScanner {
}
synchronized (mLeScanClients) {
if (callback != null && mLeScanClients.containsKey(callback)) {
- postCallbackError(callback, ScanCallback.SCAN_FAILED_ALREADY_STARTED);
+ return postCallbackErrorOrReturn(callback,
+ ScanCallback.SCAN_FAILED_ALREADY_STARTED);
}
IBluetoothGatt gatt;
try {