From 89931dd1974e284e6dded597a7efb2ba8c780a80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Rymanowski?= Date: Fri, 18 Mar 2016 14:08:14 +0100 Subject: [PATCH] shared/gatt-server: Fix handle error on execute write If there is an error during execute write we should drop all outstanding prep_write data. This patch fix that. --- src/shared/gatt-server.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/shared/gatt-server.c b/src/shared/gatt-server.c index ba668e38d..c41273a60 100644 --- a/src/shared/gatt-server.c +++ b/src/shared/gatt-server.c @@ -1204,6 +1204,9 @@ static void exec_next_prep_write(struct bt_gatt_server *server, err = BT_ATT_ERROR_UNLIKELY; error: + queue_remove_all(server->prep_queue, NULL, NULL, + prep_write_data_destroy); + bt_att_send_error_rsp(server->att, BT_ATT_OP_EXEC_WRITE_REQ, ehandle, err); } @@ -1248,6 +1251,8 @@ static void exec_write_cb(uint8_t opcode, const void *pdu, return; error: + queue_remove_all(server->prep_queue, NULL, NULL, + prep_write_data_destroy); bt_att_send_error_rsp(server->att, opcode, 0, ecode); } -- 2.47.3