summaryrefslogtreecommitdiff
path: root/framework/java/android/bluetooth/le/BluetoothLeScanner.java
diff options
context:
space:
mode:
authorVinay Kalia <vinaykalia@google.com>2017-07-28 15:09:57 -0700
committerVinay Kalia <vinaykalia@google.com>2017-08-09 09:03:52 -0700
commit2cc51ca30be4234c553a415d018ced43f65b38cc (patch)
treefaf52f87071b3f764033f33f2099b75685fa325f /framework/java/android/bluetooth/le/BluetoothLeScanner.java
parenta25b8114a2b3f23b7cdaba1c2486c1c8c06d5367 (diff)
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 49cdd0df0697809ddde41f72a232ea8922824123)
Diffstat (limited to 'framework/java/android/bluetooth/le/BluetoothLeScanner.java')
-rw-r--r--framework/java/android/bluetooth/le/BluetoothLeScanner.java3
1 files changed, 2 insertions, 1 deletions
diff --git a/framework/java/android/bluetooth/le/BluetoothLeScanner.java b/framework/java/android/bluetooth/le/BluetoothLeScanner.java
index 1eac395bd0..e3bc78e5a2 100644
--- a/framework/java/android/bluetooth/le/BluetoothLeScanner.java
+++ b/framework/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 {