diff --git a/src/command/cmd_funcs.c b/src/command/cmd_funcs.c index e7b3f63e..7a0700e2 100644 --- a/src/command/cmd_funcs.c +++ b/src/command/cmd_funcs.c @@ -8618,6 +8618,7 @@ cmd_omemo_gen(ProfWin* window, const char* const command, gchar** args) ui_update(); ProfAccount* account = accounts_get_account(session_get_account_name()); omemo_generate_crypto_materials(account); + account_free(account); cons_show("OMEMO cryptographic materials generated. Your Device ID is %d.", omemo_device_id()); return TRUE; #else diff --git a/src/ui/buffer.c b/src/ui/buffer.c index ab474956..f9a7892b 100644 --- a/src/ui/buffer.c +++ b/src/ui/buffer.c @@ -145,7 +145,7 @@ buffer_remove_entry(ProfBuff buffer, int entry) GSList* node = g_slist_nth(buffer->entries, entry); ProfBuffEntry* e = node->data; buffer->lines -= e->_lines; - _free_entry(node->data); + _free_entry(e); buffer->entries = g_slist_delete_link(buffer->entries, node); } 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);