summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Persch <chpe@gnome.org>2012-01-13 00:29:38 +0100
committerChristian Persch <chpe@gnome.org>2012-01-13 00:29:38 +0100
commit793684eedda01272dda744bfbbaaedd875b30711 (patch)
tree5c70ad8e47afdc7821f23b15edde004f12bf7803
parentebd0d1a02aeeb57c64d8e0daf5f37ff4a35f116b (diff)
downloadlibrsvg-793684eedda01272dda744bfbbaaedd875b30711.tar.gz
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)
-rw-r--r--rsvg-io.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/rsvg-io.c b/rsvg-io.c
index 921d1131..72b8521e 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 *