about summary refs log tree commit diff stats
path: root/src/xmpp
diff options
context:
space:
mode:
authorMichael Vetter <jubalh@iodoru.org>2019-07-11 16:19:31 +0200
committerGitHub <noreply@github.com>2019-07-11 16:19:31 +0200
commitad41959cc6b1567a2ca5bc0613b16f0e8200dc18 (patch)
treeb000c886da7df85fded2472847817ba21023d111 /src/xmpp
parentf32827d70d3fa951b86184417c7fdf60f1deef64 (diff)
parentc22df13d9548ac99ed7a50f462227523ee15d8ed (diff)
downloadprofani-tty-ad41959cc6b1567a2ca5bc0613b16f0e8200dc18.tar.gz
Merge pull request #1150 from paulfariello/hotfix/omemo-memleaks
Hotfix/omemo memleaks

Regards https://github.com/profanity-im/profanity/issues/1131
Diffstat (limited to 'src/xmpp')
-rw-r--r--src/xmpp/connection.c6
-rw-r--r--src/xmpp/stanza.c9
2 files changed, 13 insertions, 2 deletions
diff --git a/src/xmpp/connection.c b/src/xmpp/connection.c
index 62b56666..46ae1ed8 100644
--- a/src/xmpp/connection.c
+++ b/src/xmpp/connection.c
@@ -290,6 +290,7 @@ connection_send_stanza(const char *const stanza)
 gboolean
 connection_supports(const char *const feature)
 {
+    gboolean ret = FALSE;
     GList *jids = g_hash_table_get_keys(conn.features_by_jid);
 
     GList *curr = jids;
@@ -297,7 +298,8 @@ connection_supports(const char *const feature)
         char *jid = curr->data;
         GHashTable *features = g_hash_table_lookup(conn.features_by_jid, jid);
         if (features && g_hash_table_lookup(features, feature)) {
-            return TRUE;
+            ret = TRUE;
+            break;
         }
 
         curr = g_list_next(curr);
@@ -305,7 +307,7 @@ connection_supports(const char *const feature)
 
     g_list_free(jids);
 
-    return FALSE;
+    return ret;
 }
 
 char*
diff --git a/src/xmpp/stanza.c b/src/xmpp/stanza.c
index affb6ff4..2801ab53 100644
--- a/src/xmpp/stanza.c
+++ b/src/xmpp/stanza.c
@@ -1869,6 +1869,15 @@ stanza_attach_publish_options(xmpp_ctx_t *const ctx, xmpp_stanza_t *const iq, co
 
     xmpp_stanza_t *pubsub = xmpp_stanza_get_child_by_ns(iq, STANZA_NS_PUBSUB);
     xmpp_stanza_add_child(pubsub, publish_options);
+
+    xmpp_stanza_release(access_model_value_text);
+    xmpp_stanza_release(access_model_value);
+    xmpp_stanza_release(access_model);
+    xmpp_stanza_release(form_type_value_text);
+    xmpp_stanza_release(form_type_value);
+    xmpp_stanza_release(form_type);
+    xmpp_stanza_release(x);
+    xmpp_stanza_release(publish_options);
 }
 
 void