summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordefanor <defanor@uberspace.net>2020-09-30 11:24:49 +0300
committerdefanor <defanor@uberspace.net>2020-09-30 11:24:49 +0300
commit938f8629b03abdb0bd421a01ba6caec162264f34 (patch)
treeb58bb88abc7679d5c3bde484d17d0792362e59f2
parent22a05aafedf91f78fc2d5d3c10060cfc2799bdcb (diff)
Fix stanza queue cleanup
-rw-r--r--src/rexmpp.c14
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;