talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit c771663a2ee1618348c8233ef6d465306b1136f2
parent 3ad096b488230a360c5faad0883a31855c5bfa70
Author: wwp <subscript@free.fr>
Date:   Sun, 26 Sep 2021 17:23:11 +0200

Fix CID 1491131 and 1491292: resource leaks.

Diffstat:
Msrc/summaryview.c | 31+++++++++++++++++++------------
1 file changed, 19 insertions(+), 12 deletions(-)

diff --git a/src/summaryview.c b/src/summaryview.c @@ -4997,7 +4997,7 @@ void summary_save_as(SummaryView *summaryview) GtkCMCTree *ctree = GTK_CMCTREE(summaryview->ctree); MsgInfo *msginfo; gchar *filename = NULL; - gchar *src, *dest; + gchar *src, *dest, *dest_default; gchar *tmp; gchar *filedir = NULL; @@ -5026,14 +5026,18 @@ void summary_save_as(SummaryView *summaryview) } } - dest = filename; - filename = NULL; - if (!dest) return; - if (prefs_common.attach_save_dir && *prefs_common.attach_save_dir) - dest = g_strconcat(prefs_common.attach_save_dir, G_DIR_SEPARATOR_S, - dest, NULL); - dest = filesel_select_file_save(_("Save as"), dest); - if (!dest) return; + if (!filename) + return; + if (prefs_common.attach_save_dir && *prefs_common.attach_save_dir) { + gchar * f = g_strconcat(prefs_common.attach_save_dir, G_DIR_SEPARATOR_S, + filename, NULL); + g_free(filename); + filename = f; + } + dest = filesel_select_file_save(_("Save as"), filename); + g_free(filename); + if (!dest) + return; if (is_file_exist(dest)) { aval = alertpanel(_("Append or Overwrite"), @@ -5074,9 +5078,12 @@ void summary_save_as(SummaryView *summaryview) } filedir = g_path_get_dirname(dest); - if (filedir && strcmp(filedir, ".")) { - g_free(prefs_common.attach_save_dir); - prefs_common.attach_save_dir = g_filename_to_utf8(filedir, -1, NULL, NULL, NULL); + if (filedir) { + if (strcmp(filedir, ".")) { + g_free(prefs_common.attach_save_dir); + prefs_common.attach_save_dir = g_filename_to_utf8(filedir, -1, NULL, NULL, NULL); + } + g_free(filedir); } g_free(dest);