summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Prerepa Viswanadham <dham@google.com> 2014-12-04 10:12:55 -0800
committer Prerepa Viswanadham <dham@google.com> 2014-12-04 18:30:03 +0000
commitff5e5db319785d23d672af95ac2dff3f37827cfd (patch)
treeba6d92a4699b88c001cd8e3fd2acc562dd4b8c77
parent720beef28dacc924d77576f63fced84e6a820dc6 (diff)
Fix BT crash due to unset value for BluetoothGattDescriptor from API user
Validate writeDescriptor and writeCharacteristic methods at API invocation for non null initialisation. Bug 18395071 Change-Id: I411a57b77981310d8db1f98c67e03b4327c93339
-rw-r--r--core/java/android/bluetooth/BluetoothGatt.java4
1 files changed, 2 insertions, 2 deletions
diff --git a/core/java/android/bluetooth/BluetoothGatt.java b/core/java/android/bluetooth/BluetoothGatt.java
index c203a8e69e75..ea2dca08fd47 100644
--- a/core/java/android/bluetooth/BluetoothGatt.java
+++ b/core/java/android/bluetooth/BluetoothGatt.java
@@ -928,7 +928,7 @@ public final class BluetoothGatt implements BluetoothProfile {
BluetoothGattCharacteristic.PROPERTY_WRITE_NO_RESPONSE) == 0) return false;
if (VDBG) Log.d(TAG, "writeCharacteristic() - uuid: " + characteristic.getUuid());
- if (mService == null || mClientIf == 0) return false;
+ if (mService == null || mClientIf == 0 || characteristic.getValue() == null) return false;
BluetoothGattService service = characteristic.getService();
if (service == null) return false;
@@ -1015,7 +1015,7 @@ public final class BluetoothGatt implements BluetoothProfile {
*/
public boolean writeDescriptor(BluetoothGattDescriptor descriptor) {
if (VDBG) Log.d(TAG, "writeDescriptor() - uuid: " + descriptor.getUuid());
- if (mService == null || mClientIf == 0) return false;
+ if (mService == null || mClientIf == 0 || descriptor.getValue() == null) return false;
BluetoothGattCharacteristic characteristic = descriptor.getCharacteristic();
if (characteristic == null) return false;