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:
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);