diff options
author | defanor <defanor@uberspace.net> | 2020-09-30 11:24:49 +0300 |
---|---|---|
committer | defanor <defanor@uberspace.net> | 2020-09-30 11:24:49 +0300 |
commit | 938f8629b03abdb0bd421a01ba6caec162264f34 (patch) | |
tree | b58bb88abc7679d5c3bde484d17d0792362e59f2 | |
parent | 22a05aafedf91f78fc2d5d3c10060cfc2799bdcb (diff) |
Fix stanza queue cleanup
-rw-r--r-- | src/rexmpp.c | 14 |
1 files 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; |