talons

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

commit f25ae8ceb2f41d00aef4ae94b5e6cc2b3cb97f36
parent 340e813e727d905fa535594e19b6089b2d2bd947
Author: wwp <subscript@free.fr>
Date:   Mon, 27 Sep 2021 19:33:15 +0200

Proper fix for CID 1491065 (resource leak).

Diffstat:
Msrc/procmime.c | 27++++++++++++++-------------
1 file changed, 14 insertions(+), 13 deletions(-)

diff --git a/src/procmime.c b/src/procmime.c @@ -1031,20 +1031,21 @@ gchar *procmime_get_tmp_file_name(MimeInfo *mimeinfo) if ((mimeinfo->type == MIMETYPE_TEXT) && !g_ascii_strcasecmp(mimeinfo->subtype, "html")) base = g_strdup("mimetmp.html"); else { - const gchar *basetmp; - - basetmp = procmime_mimeinfo_get_parameter(mimeinfo, "filename"); - if (basetmp == NULL) - basetmp = procmime_mimeinfo_get_parameter(mimeinfo, "name"); - if (basetmp == NULL) - basetmp = "mimetmp"; - basetmp = g_path_get_basename(basetmp); - if (*basetmp == '\0') { - g_free(basetmp); - basetmp = g_strdup("mimetmp"); + const gchar *basetmp1; + gchar *basetmp2; + + basetmp1 = procmime_mimeinfo_get_parameter(mimeinfo, "filename"); + if (basetmp1 == NULL) + basetmp1 = procmime_mimeinfo_get_parameter(mimeinfo, "name"); + if (basetmp1 == NULL) + basetmp1 = "mimetmp"; + basetmp2 = g_path_get_basename(basetmp1); + if (*basetmp2 == '\0') { + g_free(basetmp2); + basetmp2 = g_strdup("mimetmp"); } - base = conv_filename_from_utf8(basetmp); - g_free((gchar*)basetmp); + base = conv_filename_from_utf8(basetmp2); + g_free(basetmp2); subst_for_shellsafe_filename(base); }