commit 9dee8a09a7cda3f07ebdeefe8161f113dc7a2f42
parent ac286a71ed78429e16c612161251b9ea90ccd431
Author: Colin Leroy <colin@colino.net>
Date: Mon, 24 May 2021 10:30:58 +0200
Fix use after free
Diffstat:
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/src/summaryview.c b/src/summaryview.c
@@ -5015,18 +5015,18 @@ void summary_save_as(SummaryView *summaryview)
manage_window_focus_in(summaryview->window, NULL, NULL);
if (filename && !g_utf8_validate(filename, -1, NULL)) {
- gchar *oldstr = filename;
- filename = conv_codeset_strdup(filename,
+ gchar *converted_filename = conv_codeset_strdup(filename,
conv_get_locale_charset_str(),
CS_UTF_8);
- if (!filename) {
+ if (!converted_filename) {
g_warning("summary_save_as(): failed to convert character set.");
- filename = g_strdup(oldstr);
+ } else {
+ g_free(filename);
+ filename = converted_filename;
}
- dest = filename;
- g_free(filename);
- } else
- dest = filename;
+ }
+
+ dest = filename;
filename = NULL;
if (!dest) return;
if (prefs_common.attach_save_dir && *prefs_common.attach_save_dir)