mirror of
https://git.jabber.space/devs/cproof.git
synced 2026-07-30 04:26:21 +00:00
Fix possible leaks in omemo_receive_message()
At that point we might have allocated memory that should be freed.
This commit is contained in:
@@ -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");
|
xmpp_stanza_t* payload = xmpp_stanza_get_child_by_name(encrypted, "payload");
|
||||||
if (!payload) {
|
if (!payload) {
|
||||||
return NULL;
|
goto quit;
|
||||||
}
|
}
|
||||||
payload_text = xmpp_stanza_get_text(payload);
|
payload_text = xmpp_stanza_get_text(payload);
|
||||||
if (!payload_text) {
|
if (!payload_text) {
|
||||||
return NULL;
|
goto quit;
|
||||||
}
|
}
|
||||||
size_t payload_len;
|
size_t payload_len;
|
||||||
payload_raw = g_base64_decode(payload_text, &payload_len);
|
payload_raw = g_base64_decode(payload_text, &payload_len);
|
||||||
if (!payload_raw) {
|
if (!payload_raw) {
|
||||||
return NULL;
|
goto quit;
|
||||||
}
|
}
|
||||||
|
|
||||||
xmpp_stanza_t* key_stanza;
|
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);
|
g_list_free_full(keys, (GDestroyNotify)omemo_key_free);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
quit:
|
||||||
g_free(iv_raw);
|
g_free(iv_raw);
|
||||||
g_free(payload_raw);
|
g_free(payload_raw);
|
||||||
g_free(iv_text);
|
g_free(iv_text);
|
||||||
|
|||||||
Reference in New Issue
Block a user