From f7941e29beae2b426d4a7ec5f95e58fed7a96762 Mon Sep 17 00:00:00 2001 From: David Cermak Date: Fri, 17 Jan 2020 14:13:59 +0100 Subject: [PATCH] mqtt_outbox: fixed outbox_destroy() to correctly delete all queued messages Closes https://github.com/espressif/esp-idf/issues/4643 Closes IDFGH-2558 Closes https://github.com/espressif/esp-mqtt/issues/148 Closes IDFGH-2599 Closes https://github.com/espressif/esp-mqtt/issues/147 Closes IDFGH-2598 --- lib/mqtt_outbox.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/mqtt_outbox.c b/lib/mqtt_outbox.c index 1723fb9..4ba4b76 100644 --- a/lib/mqtt_outbox.c +++ b/lib/mqtt_outbox.c @@ -199,7 +199,12 @@ esp_err_t outbox_cleanup(outbox_handle_t outbox, int max_size) void outbox_destroy(outbox_handle_t outbox) { - outbox_cleanup(outbox, 0); + outbox_item_handle_t item, tmp; + STAILQ_FOREACH_SAFE(item, outbox, next, tmp) { + STAILQ_REMOVE(outbox, item, outbox_item, next); + free(item->buffer); + free(item); + } free(outbox); }