diff --git a/android/gatt.c b/android/gatt.c
index 930afb3..624f62b 100644
--- a/android/gatt.c
+++ b/android/gatt.c
if (val->error) {
queue_destroy(temp, NULL);
error = val->error;
+ destroy_pending_request(val);
goto done;
}
adl = att_data_list_alloc(queue_length(temp), sizeof(uint16_t) +
length);
+ if (val)
+ destroy_pending_request(val);
+
val = queue_pop_head(temp);
while (val) {
uint8_t *value = adl->data[iterator++];
data->state = REQUEST_INIT;
data->handle = handle;
- queue_push_tail(device->pending_requests, data);
+ if (!queue_push_tail(device->pending_requests, data))
+ free(data);
}
queue_destroy(q, NULL);