fix memory leaks in OMEMO

Signed-off-by: Steffen Jaeckel <jaeckel-floss@eyet-services.de>
This commit is contained in:
Steffen Jaeckel
2022-12-27 23:17:33 +01:00
parent 302d0dd576
commit 698aefa005
5 changed files with 61 additions and 36 deletions

View File

@@ -40,12 +40,10 @@
#include "omemo/omemo.h"
#include "omemo/store.h"
static void _g_hash_table_free(GHashTable* hash_table);
GHashTable*
session_store_new(void)
{
return g_hash_table_new_full(g_str_hash, g_str_equal, free, (GDestroyNotify)_g_hash_table_free);
return g_hash_table_new_full(g_str_hash, g_str_equal, free, (GDestroyNotify)glib_hash_table_free);
}
GHashTable*
@@ -63,11 +61,19 @@ signed_pre_key_store_new(void)
void
identity_key_store_new(identity_key_store_t* identity_key_store)
{
identity_key_store->trusted = g_hash_table_new_full(g_str_hash, g_str_equal, free, (GDestroyNotify)signal_buffer_free);
identity_key_store->trusted = g_hash_table_new_full(g_str_hash, g_str_equal, free, (GDestroyNotify)glib_hash_table_free);
identity_key_store->private = NULL;
identity_key_store->public = NULL;
}
void
identity_key_store_destroy(identity_key_store_t* identity_key_store)
{
signal_buffer_bzero_free(identity_key_store->private);
signal_buffer_bzero_free(identity_key_store->public);
glib_hash_table_free(identity_key_store->trusted);
}
int
load_session(signal_buffer** record, signal_buffer** user_record,
const signal_protocol_address* address, void* user_data)
@@ -450,10 +456,3 @@ load_sender_key(signal_buffer** record, signal_buffer** user_record,
{
return SG_SUCCESS;
}
static void
_g_hash_table_free(GHashTable* hash_table)
{
g_hash_table_remove_all(hash_table);
g_hash_table_unref(hash_table);
}