[librsvg] Plug a mem leak



commit 793684eedda01272dda744bfbbaaedd875b30711
Author: Christian Persch <chpe gnome org>
Date:   Fri Jan 13 00:29:38 2012 +0100

    Plug a mem leak
    
    ==25857== 64 bytes in 1 blocks are definitely lost in loss record 106 of 145
    ==25857==    at 0x402AD89: malloc (vg_replace_malloc.c:236)
    ==25857==    by 0x45CDD4A: standard_malloc (gmem.c:85)
    ==25857==    by 0x45CE0F0: g_malloc (gmem.c:159)
    ==25857==    by 0x45E38AA: g_strdup (gstrfuncs.c:356)
    ==25857==    by 0x4039F7F: rsvg_get_file_path (rsvg-io.c:64)
    ==25857==    by 0x4039FDF: rsvg_acquire_file_data (rsvg-io.c:98)

 rsvg-io.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)
---
diff --git a/rsvg-io.c b/rsvg-io.c
index 921d113..72b8521 100644
--- a/rsvg-io.c
+++ b/rsvg-io.c
@@ -92,6 +92,7 @@ rsvg_acquire_file_data (const char *filename,
     GFile *file;
     gchar *path, *data;
     GInputStream *stream;
+    gboolean res;
 
     rsvg_return_val_if_fail (filename != NULL, NULL, error);
 
@@ -99,10 +100,10 @@ rsvg_acquire_file_data (const char *filename,
     if (path == NULL)
         return NULL;
 
-    if (!g_file_get_contents (path, &data, len, error))
-        return NULL;
+    res = g_file_get_contents (path, &data, len, error);
+    g_free (path);
 
-    return data;
+    return res ? data : NULL;
 }
 
 static GInputStream *



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