From e260a906f82ee3efa8e6e1773db402328795d410 Mon Sep 17 00:00:00 2001 From: Johannes Schriewer Date: Mon, 6 Aug 2018 01:47:30 +0200 Subject: [PATCH] Bugfix: Memory leak on reconnect if there were QoS or SubAck packets in queue --- src/state_queue.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/state_queue.c b/src/state_queue.c index 9db56fa..e3e59f7 100644 --- a/src/state_queue.c +++ b/src/state_queue.c @@ -63,6 +63,25 @@ void clear_packet_queue(MQTTHandle *handle) { MQTTCallbackQueueItem *current = item; item = item->next; + // free stuff inside + switch (current->type) { + case PacketTypePubRel: { + PublishPayload *payload = (PublishPayload *)current->context; + free(payload->topic); + free(payload->message); + free(payload); + break; + } + case PacketTypePubAck: + case PacketTypePubComp: + case PacketTypeSubAck: + free(current->context); + break; + + default: + break; + } + free(current); } }