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