commit bb17a3e4c4b6c5c9b89c507553150ec5db0bb3de
parent 0630129bc9f4bb740867699fea56e795ae887e78
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
@@ -4986,18 +4986,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)