From 938f8629b03abdb0bd421a01ba6caec162264f34 Mon Sep 17 00:00:00 2001 From: defanor Date: Wed, 30 Sep 2020 11:24:49 +0300 Subject: Fix stanza queue cleanup --- src/rexmpp.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/rexmpp.c b/src/rexmpp.c index fc6545a..267f91f 100644 --- a/src/rexmpp.c +++ b/src/rexmpp.c @@ -379,10 +379,9 @@ void rexmpp_cleanup (rexmpp_t *s) { xmlFreeNode(s->stream_features); s->stream_features = NULL; } - while (s->send_queue != NULL) { - xmlNodePtr next = xmlNextElementSibling(s->send_queue); - xmlFreeNode(s->send_queue); - s->send_queue = next; + if (s->send_queue != NULL) { + xmlFreeNodeList(s->send_queue); + s->send_queue = NULL; } if (s->current_element_root != NULL) { xmlFreeNode(s->current_element_root); @@ -440,10 +439,9 @@ void rexmpp_done (rexmpp_t *s) { xmlFreeNodeList(s->disco_info); s->disco_info = NULL; } - while (s->stanza_queue != NULL) { - xmlNodePtr next = xmlNextElementSibling(s->stanza_queue); - xmlFreeNode(s->send_queue); - s->send_queue = next; + if (s->stanza_queue != NULL) { + xmlFreeNodeList(s->stanza_queue); + s->stanza_queue = NULL; } while (s->active_iq != NULL) { rexmpp_iq_t *next = s->active_iq->next; -- cgit v1.2.3