2011-08-31 [colin] 3.7.10cvs14
authorColin Leroy <colin@colino.net>
Wed, 31 Aug 2011 18:39:50 +0000 (18:39 +0000)
committerColin Leroy <colin@colino.net>
Wed, 31 Aug 2011 18:39:50 +0000 (18:39 +0000)
* src/plugins/pgpinline/pgpinline.c
* src/plugins/pgpmime/pgpmime.c
Fix bug #2431, "Major memory leak in PGP message handling".

ChangeLog
PATCHSETS
configure.ac
src/plugins/pgpinline/pgpinline.c
src/plugins/pgpmime/pgpmime.c

index ed0affc4685d6501d2a5ee50eeff6e29370859b6..bad5b724c178e9f66540d9e836159589036e2996 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2011-08-31 [colin]     3.7.10cvs14
+
+       * src/plugins/pgpinline/pgpinline.c
+       * src/plugins/pgpmime/pgpmime.c
+               Fix bug #2431, "Major memory leak in PGP message handling".
+
 2011-08-31 [colin]     3.7.10cvs13
 
        * AUTHORS
index 23c0296ab13fd4a8a459e2bc42c82650b6850fb0..2c00fb260e5bcb2d830b3992fb25e39d3a5c5727 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.654.2.4291 -r 1.654.2.4292 configure.ac;  cvs diff -u -r 1.9.2.46 -r 1.9.2.47 src/common/ssl.c;  ) > 3.7.10cvs11.patchset
 ( cvs diff -u -r 1.12.2.55 -r 1.12.2.56 src/gtk/prefswindow.c;  ) > 3.7.10cvs12.patchset
 ( cvs diff -u -r 1.100.2.78 -r 1.100.2.79 AUTHORS;  cvs diff -u -r 1.1.2.72 -r 1.1.2.73 src/gtk/authors.h;  cvs diff -u -r 1.274.2.327 -r 1.274.2.328 src/mainwindow.c;  cvs diff -u -r 1.94.2.217 -r 1.94.2.218 src/messageview.c;  cvs diff -u -r 1.1.2.72 -r 1.1.2.73 src/gtk/authors.h;  ) > 3.7.10cvs13.patchset
+( cvs diff -u -r 1.1.2.48 -r 1.1.2.49 src/plugins/pgpinline/pgpinline.c;  cvs diff -u -r 1.1.2.58 -r 1.1.2.59 src/plugins/pgpmime/pgpmime.c;  ) > 3.7.10cvs14.patchset
index c5ff1d48bfa2abae1d3d832f0d014ff5656fb264..503855ec5b14c362e26bf1272ed3f141ec09d41e 100644 (file)
@@ -12,7 +12,7 @@ MINOR_VERSION=7
 MICRO_VERSION=10
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=13
+EXTRA_VERSION=14
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
index 338914bbaa112bd23386cc814c5321bd8119b5ca..611b0d30e54f3b0cc82d3bcf8bbcb789799c2790 100644 (file)
@@ -475,10 +475,12 @@ static MimeInfo *pgpinline_decrypt(MimeInfo *mimeinfo)
        if (len > 0) {
                if (fwrite(chars, 1, len, dstfp) < len) {
                        FILE_OP_ERROR(fname, "fwrite");
+                       g_free(chars);
                        privacy_set_error(_("Couldn't write to decrypted file %s"), fname);
                        goto FILE_ERROR;
                }
        }
+       g_free(chars);
        /* Store any part after encrypted text */
        if (fwrite(_("--- End of PGP/Inline encrypted data ---\n"), 1,
                strlen(_("--- End of PGP/Inline encrypted data ---\n")), 
index 8013a2b1fdf12a5b9cdf942f9d648ed2a544bcba..2fd66b4120e6106936b680b93ae321f6be646af6 100644 (file)
@@ -364,6 +364,7 @@ static MimeInfo *pgpmime_decrypt(MimeInfo *mimeinfo)
        if (len > 0) {
                if (fwrite(chars, 1, len, dstfp) < len) {
                        FILE_OP_ERROR(fname, "fwrite");
+                       g_free(chars);
                        fclose(dstfp);
                        privacy_set_error(_("Couldn't write to decrypted file %s"), fname);
                        g_free(fname);
@@ -373,6 +374,8 @@ static MimeInfo *pgpmime_decrypt(MimeInfo *mimeinfo)
                        return NULL;
                }
        }
+       g_free(chars);
+
        if (fclose(dstfp) == EOF) {
                FILE_OP_ERROR(fname, "fclose");
                privacy_set_error(_("Couldn't close decrypted file %s"), fname);