From 94cf9d1f360ad6339cb8ed87cef651d7ff02e3be Mon Sep 17 00:00:00 2001 From: iphydf Date: Thu, 16 Nov 2023 00:20:39 +0000 Subject: [PATCH] fix: Fix memory leak in the error path of loading savedata. --- other/bootstrap_daemon/docker/tox-bootstrapd.sha256 | 2 +- toxcore/tox.c | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/other/bootstrap_daemon/docker/tox-bootstrapd.sha256 b/other/bootstrap_daemon/docker/tox-bootstrapd.sha256 index fa458d46..a383be60 100644 --- a/other/bootstrap_daemon/docker/tox-bootstrapd.sha256 +++ b/other/bootstrap_daemon/docker/tox-bootstrapd.sha256 @@ -1 +1 @@ -8942735f04e41962bbcfaeccbfa6487424ad78c910e932d93b5b6f56a6e852b7 /usr/local/bin/tox-bootstrapd +a5b7485734edb8ce54146f95391d7e14ea9cce4dbc92ded64230e1933a3371e8 /usr/local/bin/tox-bootstrapd diff --git a/toxcore/tox.c b/toxcore/tox.c index ad7ad145..768d5f9e 100644 --- a/toxcore/tox.c +++ b/toxcore/tox.c @@ -858,6 +858,9 @@ Tox *tox_new(const struct Tox_Options *options, Tox_Err_New *error) if (load_savedata_tox && tox_load(tox, tox_options_get_savedata_data(opts), tox_options_get_savedata_length(opts)) == -1) { + kill_groupchats(tox->m->conferences_object); + kill_messenger(tox->m); + mono_time_free(tox->sys.mem, tox->mono_time); tox_options_free(default_options); tox_unlock(tox); @@ -866,8 +869,8 @@ Tox *tox_new(const struct Tox_Options *options, Tox_Err_New *error) pthread_mutex_destroy(tox->mutex); } - free(tox->mutex); - free(tox); + mem_delete(sys->mem, tox->mutex); + mem_delete(sys->mem, tox); SET_ERROR_PARAMETER(error, TOX_ERR_NEW_LOAD_BAD_FORMAT); return nullptr;