From d341705a4341a052fa330644b23e9fe1be632347 Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Wed, 19 Jun 2024 11:46:50 +0200 Subject: [PATCH] Fix possible leaks in omemo_receive_message() At that point we might have allocated memory that should be freed. --- src/xmpp/omemo.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/xmpp/omemo.c b/src/xmpp/omemo.c index 459b5419..0beb6ee9 100644 --- a/src/xmpp/omemo.c +++ b/src/xmpp/omemo.c @@ -391,16 +391,16 @@ omemo_receive_message(xmpp_stanza_t* const stanza, gboolean* trusted) xmpp_stanza_t* payload = xmpp_stanza_get_child_by_name(encrypted, "payload"); if (!payload) { - return NULL; + goto quit; } payload_text = xmpp_stanza_get_text(payload); if (!payload_text) { - return NULL; + goto quit; } size_t payload_len; payload_raw = g_base64_decode(payload_text, &payload_len); if (!payload_raw) { - return NULL; + goto quit; } xmpp_stanza_t* key_stanza; @@ -444,6 +444,7 @@ omemo_receive_message(xmpp_stanza_t* const stanza, gboolean* trusted) g_list_free_full(keys, (GDestroyNotify)omemo_key_free); } +quit: g_free(iv_raw); g_free(payload_raw); g_free(iv_text);