diff options
author | Vinay Kalia <vinaykalia@google.com> | 2017-07-28 15:09:57 -0700 |
---|---|---|
committer | Vinay Kalia <vinaykalia@google.com> | 2017-08-09 09:03:52 -0700 |
commit | 2cc51ca30be4234c553a415d018ced43f65b38cc (patch) | |
tree | faf52f87071b3f764033f33f2099b75685fa325f /framework/java/android/bluetooth/le/BluetoothLeScanner.java | |
parent | a25b8114a2b3f23b7cdaba1c2486c1c8c06d5367 (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.java | 3 |
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 { |