summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Persch <chpe@src.gnome.org>2008-10-08 20:54:35 +0000
committerChristian Persch <chpe@src.gnome.org>2008-10-08 20:54:35 +0000
commitc973369e31f1c495918bad2f311bbcb49f389dc1 (patch)
tree3f7e60b3221bcde2d3e1cd78ab38c86e3b6b7b16
parentc7501c82237380bbe03646e6f4133b4862bec5a8 (diff)
Bug 555314 – mem leak in gmarkup
svn path=/trunk/; revision=7579
-rw-r--r--ChangeLog6
-rw-r--r--glib/gmarkup.c7
2 files changed, 11 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 9bf3daf57..f4fc6ab75 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2008-10-08 Christian Persch <chpe@gnome.org>
+
+ Bug 555314 – mem leak in gmarkup
+
+ * glib/gmarkup.c: (g_markup_parse_context_parse): Plug a mem leak.
+
2008-10-08 Tor Lillqvist <tml@novell.com>
Bug 554790 - g_convert() misbehaves with winiconv versions
diff --git a/glib/gmarkup.c b/glib/gmarkup.c
index 3e073f8e4..43f5b262d 100644
--- a/glib/gmarkup.c
+++ b/glib/gmarkup.c
@@ -1096,6 +1096,8 @@ g_markup_parse_context_parse (GMarkupParseContext *context,
{
gint newlines = 0;
const gchar *p, *q;
+ gchar *current_text_dup;
+
q = p = context->current_text;
while (p != first_invalid)
{
@@ -1111,12 +1113,13 @@ g_markup_parse_context_parse (GMarkupParseContext *context,
context->line_number += newlines;
context->char_number += g_utf8_strlen (q, first_invalid - q);
+ current_text_dup = g_strndup (context->current_text, context->current_text_len);
set_error (context,
error,
G_MARKUP_ERROR_BAD_UTF8,
_("Invalid UTF-8 encoded text - not valid '%s'"),
- g_strndup (context->current_text,
- context->current_text_len));
+ current_text_dup);
+ g_free (current_text_dup);
goto finished;
}