mirror of
https://git.jabber.space/devs/cproof.git
synced 2026-07-30 08:16:22 +00:00
Fix some more memory leaks + an invalid read.
`ProfMessage` was not completely initialized, fix this by using `calloc()` for the allocation. Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
This commit is contained in:
@@ -1647,6 +1647,7 @@ cmd_ac_uninit(void)
|
|||||||
autocomplete_free(plugins_unload_ac);
|
autocomplete_free(plugins_unload_ac);
|
||||||
autocomplete_free(plugins_reload_ac);
|
autocomplete_free(plugins_reload_ac);
|
||||||
autocomplete_free(script_show_ac);
|
autocomplete_free(script_show_ac);
|
||||||
|
g_hash_table_destroy(ac_funcs);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|||||||
@@ -169,6 +169,7 @@ otr_start_query(void)
|
|||||||
static void
|
static void
|
||||||
_otr_shutdown(void)
|
_otr_shutdown(void)
|
||||||
{
|
{
|
||||||
|
g_hash_table_destroy(smp_initiators);
|
||||||
if (jid) {
|
if (jid) {
|
||||||
free(jid);
|
free(jid);
|
||||||
jid = NULL;
|
jid = NULL;
|
||||||
|
|||||||
@@ -57,9 +57,19 @@ static int _block_remove_result_handler(xmpp_stanza_t* const stanza, void* const
|
|||||||
static GList* blocked;
|
static GList* blocked;
|
||||||
static Autocomplete blocked_ac;
|
static Autocomplete blocked_ac;
|
||||||
|
|
||||||
|
static void
|
||||||
|
_blocking_shutdown(void)
|
||||||
|
{
|
||||||
|
if (blocked) {
|
||||||
|
g_list_free_full(blocked, free);
|
||||||
|
}
|
||||||
|
autocomplete_free(blocked_ac);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
blocking_request(void)
|
blocking_request(void)
|
||||||
{
|
{
|
||||||
|
prof_add_shutdown_routine(_blocking_shutdown);
|
||||||
if (blocked) {
|
if (blocked) {
|
||||||
g_list_free_full(blocked, free);
|
g_list_free_full(blocked, free);
|
||||||
blocked = NULL;
|
blocked = NULL;
|
||||||
|
|||||||
@@ -66,9 +66,19 @@ static int _bookmark_result_id_handler(xmpp_stanza_t* const stanza, void* const
|
|||||||
static void _bookmark_destroy(Bookmark* bookmark);
|
static void _bookmark_destroy(Bookmark* bookmark);
|
||||||
static void _send_bookmarks(void);
|
static void _send_bookmarks(void);
|
||||||
|
|
||||||
|
static void
|
||||||
|
_bookmark_shutdown(void)
|
||||||
|
{
|
||||||
|
if (bookmarks) {
|
||||||
|
g_hash_table_destroy(bookmarks);
|
||||||
|
}
|
||||||
|
autocomplete_free(bookmark_ac);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
bookmark_request(void)
|
bookmark_request(void)
|
||||||
{
|
{
|
||||||
|
prof_add_shutdown_routine(_bookmark_shutdown);
|
||||||
if (bookmarks) {
|
if (bookmarks) {
|
||||||
g_hash_table_destroy(bookmarks);
|
g_hash_table_destroy(bookmarks);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -72,6 +72,7 @@ static EntityCapabilities* _caps_copy(EntityCapabilities* caps);
|
|||||||
static void
|
static void
|
||||||
_caps_close(void)
|
_caps_close(void)
|
||||||
{
|
{
|
||||||
|
caps_reset_ver();
|
||||||
free_keyfile(&caps_prof_keyfile);
|
free_keyfile(&caps_prof_keyfile);
|
||||||
cache = NULL;
|
cache = NULL;
|
||||||
g_hash_table_destroy(jid_to_ver);
|
g_hash_table_destroy(jid_to_ver);
|
||||||
|
|||||||
@@ -347,19 +347,9 @@ message_handlers_init(void)
|
|||||||
ProfMessage*
|
ProfMessage*
|
||||||
message_init(void)
|
message_init(void)
|
||||||
{
|
{
|
||||||
ProfMessage* message = malloc(sizeof(ProfMessage));
|
ProfMessage* message = calloc(1, sizeof(ProfMessage));
|
||||||
|
|
||||||
message->from_jid = NULL;
|
|
||||||
message->to_jid = NULL;
|
|
||||||
message->id = NULL;
|
|
||||||
message->originid = NULL;
|
|
||||||
message->stanzaid = NULL;
|
|
||||||
message->replace_id = NULL;
|
|
||||||
message->body = NULL;
|
|
||||||
message->encrypted = NULL;
|
|
||||||
message->plain = NULL;
|
|
||||||
message->enc = PROF_MSG_ENC_NONE;
|
message->enc = PROF_MSG_ENC_NONE;
|
||||||
message->timestamp = NULL;
|
|
||||||
message->trusted = true;
|
message->trusted = true;
|
||||||
message->type = PROF_MSG_TYPE_UNINITIALIZED;
|
message->type = PROF_MSG_TYPE_UNINITIALIZED;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user