[Commits] [SCM] claws branch, gtk3, updated. 4.0.0-228-gbeffc75e4

wwp at claws-mail.org wwp at claws-mail.org
Sun Sep 26 21:27:13 CEST 2021


The branch, gtk3 has been updated
       via  beffc75e4ec45b145586479eb3743632857456e8 (commit)
      from  ec8d3625b668c4288310196108bcc37a40f2c889 (commit)

Summary of changes:
 src/procmime.c | 20 +++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)


- Log -----------------------------------------------------------------
commit beffc75e4ec45b145586479eb3743632857456e8
Author: wwp <subscript at free.fr>
Date:   Sun Sep 26 21:26:58 2021 +0200

    Fix CID 1491065, 1491075 and 1491274: resource leaks

diff --git a/src/procmime.c b/src/procmime.c
index 85a199bbf..24ad3ee7f 100644
--- a/src/procmime.c
+++ b/src/procmime.c
@@ -347,6 +347,7 @@ gboolean procmime_decode_content(MimeInfo *mimeinfo)
 	if (!outfp) {
 		perror("tmpfile");
 		claws_fclose(infp);
+		g_free(tmpfilename);
 		return FALSE;
 	}
 
@@ -485,6 +486,7 @@ gboolean procmime_decode_content(MimeInfo *mimeinfo)
 
 	if (g_stat(tmpfilename, &statbuf) < 0) {
 		FILE_OP_ERROR(tmpfilename, "stat");
+		g_free(tmpfilename);
 		return FALSE;
 	}
 
@@ -524,22 +526,26 @@ gboolean procmime_encode_content(MimeInfo *mimeinfo, EncodingType encoding)
 	outfp = get_tmpfile_in_dir(get_mime_tmp_dir(), &tmpfilename);
 	if (!outfp) {
 		perror("tmpfile");
+		g_free(tmpfilename);
 		return FALSE;
 	}
 
 	if (mimeinfo->content == MIMECONTENT_FILE && mimeinfo->data.filename) {
 		if ((infp = claws_fopen(mimeinfo->data.filename, "rb")) == NULL) {
 			g_warning("can't open file %s", mimeinfo->data.filename);
+			g_free(tmpfilename);
 			claws_fclose(outfp);
 			return FALSE;
 		}
 	} else if (mimeinfo->content == MIMECONTENT_MEM) {
 		infp = str_open_as_stream(mimeinfo->data.mem);
 		if (infp == NULL) {
+			g_free(tmpfilename);
 			claws_fclose(outfp);
 			return FALSE;
 		}
 	} else {
+		g_free(tmpfilename);
 		claws_fclose(outfp);
 		g_warning("unknown mimeinfo");
 		return FALSE;
@@ -556,6 +562,7 @@ gboolean procmime_encode_content(MimeInfo *mimeinfo, EncodingType encoding)
 				tmp_file = get_tmp_file();
 				if (canonicalize_file(mimeinfo->data.filename, tmp_file) < 0) {
 					g_free(tmp_file);
+					g_free(tmpfilename);
 					claws_fclose(infp);
 					claws_fclose(outfp);
 					return FALSE;
@@ -564,6 +571,7 @@ gboolean procmime_encode_content(MimeInfo *mimeinfo, EncodingType encoding)
 					FILE_OP_ERROR(tmp_file, "claws_fopen");
 					claws_unlink(tmp_file);
 					g_free(tmp_file);
+					g_free(tmpfilename);
 					claws_fclose(infp);
 					claws_fclose(outfp);
 					return FALSE;
@@ -575,6 +583,7 @@ gboolean procmime_encode_content(MimeInfo *mimeinfo, EncodingType encoding)
 				tmp_fp = infp;
 				g_free(out);
 				if (infp == NULL) {
+					g_free(tmpfilename);
 					claws_fclose(outfp);
 					return FALSE;
 				}
@@ -638,9 +647,11 @@ gboolean procmime_encode_content(MimeInfo *mimeinfo, EncodingType encoding)
 	claws_fclose(outfp);
 	claws_fclose(infp);
 
-	if (err == TRUE)
+	if (err == TRUE) {
+		g_free(tmpfilename);
 		return FALSE;
-
+	}
+    
 	if (mimeinfo->content == MIMECONTENT_FILE) {
 		if (mimeinfo->tmp && (mimeinfo->data.filename != NULL))
 			claws_unlink(mimeinfo->data.filename);
@@ -652,6 +663,7 @@ gboolean procmime_encode_content(MimeInfo *mimeinfo, EncodingType encoding)
 
 	if (g_stat(tmpfilename, &statbuf) < 0) {
 		FILE_OP_ERROR(tmpfilename, "stat");
+		g_free(tmpfilename);
 		return FALSE;
 	}
 	mimeinfo->content = MIMECONTENT_FILE;
@@ -1065,8 +1077,10 @@ gchar *procmime_get_tmp_file_name(MimeInfo *mimeinfo)
 		if (basetmp == NULL)
 			basetmp = "mimetmp";
 		basetmp = g_path_get_basename(basetmp);
-		if (*basetmp == '\0') 
+		if (*basetmp == '\0') {
+			g_free(basetmp);
 			basetmp = g_strdup("mimetmp");
+		}
 		base = conv_filename_from_utf8(basetmp);
 		g_free((gchar*)basetmp);
 		subst_for_shellsafe_filename(base);

-----------------------------------------------------------------------


hooks/post-receive
-- 
Claws Mail


More information about the Commits mailing list