commit 5b993515c033ddd2beacb54985b2dd3557629e8f
parent 7e51f51b5992a4d6c5821c1c23032b5ae9a1ca6c
Author: wwp <subscript@free.fr>
Date: Tue, 28 Sep 2021 14:45:12 +0200
Fix CID 1491069 and 1491256: resource leaks.
Diffstat:
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/plugins/smime/smime.c b/src/plugins/smime/smime.c
@@ -744,6 +744,7 @@ gboolean smime_encrypt(MimeInfo *mimeinfo, const gchar *encrypt_data)
if ((err = gpgme_new(&ctx)) != GPG_ERR_NO_ERROR) {
debug_print ("gpgme_new failed: %s\n", gpgme_strerror(err));
+ g_free(fprs);
return FALSE;
}
@@ -752,6 +753,7 @@ gboolean smime_encrypt(MimeInfo *mimeinfo, const gchar *encrypt_data)
if (err) {
debug_print ("gpgme_set_protocol failed: %s\n",
gpgme_strerror (err));
+ g_free(fprs);
return FALSE;
}
@@ -771,7 +773,8 @@ gboolean smime_encrypt(MimeInfo *mimeinfo, const gchar *encrypt_data)
kset[i] = key;
i++;
}
-
+ g_free(fprs);
+
debug_print("Encrypting message content\n");
/* remove content node from message */
@@ -801,6 +804,7 @@ gboolean smime_encrypt(MimeInfo *mimeinfo, const gchar *encrypt_data)
if (fp == NULL) {
FILE_OP_ERROR(tmpfile, "create");
g_free(kset);
+ g_free(tmpfile);
return FALSE;
}
procmime_decode_content(msgcontent);
@@ -812,6 +816,7 @@ gboolean smime_encrypt(MimeInfo *mimeinfo, const gchar *encrypt_data)
if (fp == NULL) {
FILE_OP_ERROR(tmpfile, "open");
g_free(kset);
+ g_free(tmpfile);
return FALSE;
}
g_free(tmpfile);
@@ -846,7 +851,7 @@ gboolean smime_encrypt(MimeInfo *mimeinfo, const gchar *encrypt_data)
claws_unlink(tmpfile);
g_free(tmpfile);
g_free(enccontent);
- return FALSE;
+ g_free(tmpfile);
}
if (claws_safe_fclose(fp) == EOF) {
FILE_OP_ERROR(tmpfile, "claws_fclose");