From ff5e5db319785d23d672af95ac2dff3f37827cfd Mon Sep 17 00:00:00 2001 From: Prerepa Viswanadham Date: Thu, 4 Dec 2014 10:12:55 -0800 Subject: [PATCH] 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 --- core/java/android/bluetooth/BluetoothGatt.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/java/android/bluetooth/BluetoothGatt.java b/core/java/android/bluetooth/BluetoothGatt.java index c203a8e69e750..ea2dca08fd477 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;