Skip to content

Commit aa1e22f

Browse files
committed
Fix memory leaks when OMEMO keys have not been generated yet.
Signed-off-by: Steffen Jaeckel <[email protected]>
1 parent 91b5818 commit aa1e22f

File tree

1 file changed

+11
-14
lines changed

1 file changed

+11
-14
lines changed

src/omemo/omemo.c

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -275,26 +275,23 @@ omemo_on_connect(ProfAccount* account)
275275
void
276276
omemo_on_disconnect(void)
277277
{
278-
if (!omemo_ctx.loaded) {
279-
return;
278+
if (omemo_ctx.loaded) {
279+
free_keyfile(&omemo_ctx.knowndevices);
280+
free_keyfile(&omemo_ctx.sessions);
281+
free_keyfile(&omemo_ctx.trust);
282+
283+
ec_public_key* pub = ratchet_identity_key_pair_get_public(omemo_ctx.identity_key_pair);
284+
ec_private_key* priv = ratchet_identity_key_pair_get_private(omemo_ctx.identity_key_pair);
285+
ratchet_identity_key_pair_destroy((signal_type_base*)omemo_ctx.identity_key_pair);
286+
ec_private_key_destroy((signal_type_base*)priv);
287+
ec_public_key_destroy((signal_type_base*)pub);
280288
}
281289

290+
free_keyfile(&omemo_ctx.identity);
282291
g_hash_table_destroy(omemo_ctx.known_devices);
283292
g_hash_table_destroy(omemo_ctx.device_list_handler);
284293
g_hash_table_destroy(omemo_ctx.device_list);
285-
286-
free_keyfile(&omemo_ctx.knowndevices);
287-
free_keyfile(&omemo_ctx.sessions);
288-
free_keyfile(&omemo_ctx.trust);
289-
free_keyfile(&omemo_ctx.identity);
290-
291294
signal_protocol_store_context_destroy(omemo_ctx.store);
292-
ec_public_key* pub = ratchet_identity_key_pair_get_public(omemo_ctx.identity_key_pair);
293-
ec_private_key* priv = ratchet_identity_key_pair_get_private(omemo_ctx.identity_key_pair);
294-
ratchet_identity_key_pair_destroy((signal_type_base*)omemo_ctx.identity_key_pair);
295-
ec_private_key_destroy((signal_type_base*)priv);
296-
ec_public_key_destroy((signal_type_base*)pub);
297-
298295
signal_context_destroy(omemo_ctx.signal);
299296
memset(&omemo_ctx, 0, sizeof(omemo_ctx));
300297
}

0 commit comments

Comments
 (0)