diff options
author | Vinay Kalia <vinaykalia@google.com> | 2017-07-28 15:09:57 -0700 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2017-08-22 23:17:30 +0000 |
commit | bf1af88d8e101973a128d8ed6e2a4543e2fa834b (patch) | |
tree | a5a3f1671b6d3bb4ff1119285fd150888c6a6040 | |
parent | 1333c1e2a863f8f8ce9fe6f1f93929506f361ebc (diff) | |
download | base-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.java | 3 |
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 { |