Bug 555314 – mem leak in gmarkup
authorChristian Persch <chpe@src.gnome.org>
Wed, 8 Oct 2008 20:54:35 +0000 (20:54 +0000)
committerChristian Persch <chpe@src.gnome.org>
Wed, 8 Oct 2008 20:54:35 +0000 (20:54 +0000)
svn path=/trunk/; revision=7579

ChangeLog
glib/gmarkup.c

index 9bf3daf..f4fc6ab 100644 (file)
--- 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
index 3e073f8..43f5b26 100644 (file)
@@ -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;
     }