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
This commit is contained in:
@@ -928,7 +928,7 @@ public final class BluetoothGatt implements BluetoothProfile {
|
|||||||
BluetoothGattCharacteristic.PROPERTY_WRITE_NO_RESPONSE) == 0) return false;
|
BluetoothGattCharacteristic.PROPERTY_WRITE_NO_RESPONSE) == 0) return false;
|
||||||
|
|
||||||
if (VDBG) Log.d(TAG, "writeCharacteristic() - uuid: " + characteristic.getUuid());
|
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();
|
BluetoothGattService service = characteristic.getService();
|
||||||
if (service == null) return false;
|
if (service == null) return false;
|
||||||
@@ -1015,7 +1015,7 @@ public final class BluetoothGatt implements BluetoothProfile {
|
|||||||
*/
|
*/
|
||||||
public boolean writeDescriptor(BluetoothGattDescriptor descriptor) {
|
public boolean writeDescriptor(BluetoothGattDescriptor descriptor) {
|
||||||
if (VDBG) Log.d(TAG, "writeDescriptor() - uuid: " + descriptor.getUuid());
|
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();
|
BluetoothGattCharacteristic characteristic = descriptor.getCharacteristic();
|
||||||
if (characteristic == null) return false;
|
if (characteristic == null) return false;
|
||||||
|
|||||||
Reference in New Issue
Block a user