From: Luiz Augusto von Dentz <luiz.von.dentz@xxxxxxxxx> Similar to issue found with unit test it is necessary to protect bt_gatt_client instance before calling the callback otherwise it may destroy it causing a crash. --- src/shared/gatt-client.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/shared/gatt-client.c b/src/shared/gatt-client.c index df994d7..b92d7b1 100644 --- a/src/shared/gatt-client.c +++ b/src/shared/gatt-client.c @@ -2456,14 +2456,17 @@ static void complete_write_long_op(struct request *req, bool success, if (req->att_id) return; - request_unref(req); success = false; + bt_gatt_client_ref(op->client); + if (op->callback) op->callback(success, reliable_error, att_ecode, op->user_data); start_next_long_write(op->client); + + bt_gatt_client_unref(op->client); } static void prepare_write_cb(uint8_t opcode, const void *pdu, uint16_t length, -- 2.1.0 -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html