[gmime] Fixed a memory leak in g_mime_multipart_signed_verify



commit e7c88351cf7d1ff9fda66e4b4e93a3be335c8775
Author: Jeffrey Stedfast <jeff xamarin com>
Date:   Thu Mar 3 09:13:10 2016 -0500

    Fixed a memory leak in g_mime_multipart_signed_verify
    
    2016-03-03  Jeffrey Stedfast  <fejj gnome org>
    
        * gmime/gmime-multipart-signed.c (g_mime_multipart_signed_verify): Fixed
        a memory leak when verifying S/MIME signatures. Thanks to Minaev Mike for
        discovering this bug.
    
        Fixes bug #760681

 ChangeLog                      |    8 ++++++++
 gmime/gmime-multipart-signed.c |    2 ++
 2 files changed, 10 insertions(+), 0 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 58652ee..161f112 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2016-03-03  Jeffrey Stedfast  <fejj gnome org>
+
+       * gmime/gmime-multipart-signed.c (g_mime_multipart_signed_verify): Fixed
+       a memory leak when verifying S/MIME signatures. Thanks to Minaev Mike for
+       discovering this bug.
+
+       Fixes bug #760681
+
 2016-01-13  Jeffrey STedfast  <fejj gnome org>
 
        * gmime/gmime-pkcs7-context.c (key_list_free): Fixed the logic for freeing
diff --git a/gmime/gmime-multipart-signed.c b/gmime/gmime-multipart-signed.c
index c5f8532..2e10439 100644
--- a/gmime/gmime-multipart-signed.c
+++ b/gmime/gmime-multipart-signed.c
@@ -457,6 +457,7 @@ g_mime_multipart_signed_verify (GMimeMultipartSigned *mps, GMimeCryptoContext *c
                g_mime_data_wrapper_write_to_stream (wrapper, sigstream);
        } else {
                sigstream = g_mime_data_wrapper_get_stream (wrapper);
+               g_object_ref (sigstream);
        }
        
        g_mime_stream_reset (sigstream);
@@ -468,6 +469,7 @@ g_mime_multipart_signed_verify (GMimeMultipartSigned *mps, GMimeCryptoContext *c
        d(printf ("attempted to verify:\n----- BEGIN SIGNED PART -----\n%.*s----- END SIGNED PART -----\n",
                  (int) GMIME_STREAM_MEM (stream)->buffer->len, GMIME_STREAM_MEM (stream)->buffer->data));
        
+       g_object_unref (sigstream);
        g_object_unref (stream);
        
        return signatures;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]