[libgsf] vba: plug leak.



commit 7b40527056227112e59760766048a2b825a93f9e
Author: Morten Welinder <terra gnome org>
Date:   Sat Nov 1 11:10:59 2014 -0400

    vba: plug leak.

 ChangeLog              |    2 ++
 gsf/gsf-infile-msvba.c |    8 +++++++-
 2 files changed, 9 insertions(+), 1 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 4bb5945..675a955 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2014-11-01  Morten Welinder  <terra gnome org>
 
+       * gsf/gsf-infile-msvba.c (vba_dir_read): Plug leak.
+
        * gsf/gsf-structured-blob.c (blob_finalize, blob_dup)
        (blob_child_by_name, gsf_structured_blob_read): Reduce CRITICALs
        on corrupted files.
diff --git a/gsf/gsf-infile-msvba.c b/gsf/gsf-infile-msvba.c
index ae665d3..7a5ad67 100644
--- a/gsf/gsf-infile-msvba.c
+++ b/gsf/gsf-infile-msvba.c
@@ -277,7 +277,10 @@ vba_dir_read (GsfInfileMSVBA *vba, GError **err)
                        g_free (name);
 #endif
                        break;
-               case 0x19: elem_stream = g_strndup (ptr, len); break;
+               case 0x19:
+                       g_free (elem_stream);
+                       elem_stream = g_strndup (ptr, len);
+                       break;
 
                case 0x31:
                        if (len != 4) {
@@ -317,11 +320,14 @@ fail_compression :
        g_object_unref (dir);
 fail_stream :
 
+       g_free (elem_stream);
+
        if (failed) {
                if (err != NULL)
                        *err = g_error_new_literal (gsf_input_error_id (), 0, msg);
                return FALSE;
        }
+
        return TRUE;
 }
 


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