Skip to content

Commit 75b058b

Browse files
authored
Defensive copying in legacy/deprecated Android gatt callbacks (#635)
1 parent 43330f2 commit 75b058b

1 file changed

Lines changed: 6 additions & 3 deletions

File tree

core/src/androidMain/kotlin/gatt/Callback.kt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,8 @@ internal class Callback(
133133
status: Int,
134134
) {
135135
@Suppress("DEPRECATION")
136-
onCharacteristicRead(gatt, characteristic, characteristic.value ?: byteArrayOf(), status)
136+
val value = characteristic.value?.copyOf() ?: byteArrayOf()
137+
onCharacteristicRead(gatt, characteristic, value, status)
137138
}
138139

139140
// Added in API 33.
@@ -173,7 +174,8 @@ internal class Callback(
173174
characteristic: BluetoothGattCharacteristic,
174175
) {
175176
@Suppress("DEPRECATION")
176-
onCharacteristicChanged(gatt, characteristic, characteristic.value ?: byteArrayOf())
177+
val value = characteristic.value?.copyOf() ?: byteArrayOf()
178+
onCharacteristicChanged(gatt, characteristic, value)
177179
}
178180

179181
// Added in API 33.
@@ -198,7 +200,8 @@ internal class Callback(
198200
status: Int,
199201
) {
200202
@Suppress("DEPRECATION")
201-
onDescriptorRead(gatt, descriptor, status, descriptor.value ?: byteArrayOf())
203+
val value = descriptor.value?.copyOf() ?: byteArrayOf()
204+
onDescriptorRead(gatt, descriptor, status, value)
202205
}
203206

204207
// Added in API 33.

0 commit comments

Comments
 (0)