NULL-terminate context->attr_values so g_strfreev() is safe. Would
authorHavoc Pennington <hp@pobox.com>
Tue, 29 Jan 2002 03:42:23 +0000 (03:42 +0000)
committerHavoc Pennington <hp@src.gnome.org>
Tue, 29 Jan 2002 03:42:23 +0000 (03:42 +0000)
2002-01-28  Havoc Pennington  <hp@pobox.com>

* glib/gmarkup.c (add_attribute): NULL-terminate
context->attr_values so g_strfreev() is safe.
Would previously crash if parsing was ended prior
to ending the start tag.
(g_markup_parse_context_parse): add a couple assertions

ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-12
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
glib/gmarkup.c

index dff6a78..f558379 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2002-01-28  Havoc Pennington  <hp@pobox.com>
+
+       * glib/gmarkup.c (add_attribute): NULL-terminate
+       context->attr_values so g_strfreev() is safe. 
+       Would previously crash if parsing was ended prior 
+       to ending the start tag.
+       (g_markup_parse_context_parse): add a couple assertions
+
 2002-01-28  Havoc Pennington  <hp@redhat.com>
 
        * glib/gmacros.h: get rid of warning here
index dff6a78..f558379 100644 (file)
@@ -1,3 +1,11 @@
+2002-01-28  Havoc Pennington  <hp@pobox.com>
+
+       * glib/gmarkup.c (add_attribute): NULL-terminate
+       context->attr_values so g_strfreev() is safe. 
+       Would previously crash if parsing was ended prior 
+       to ending the start tag.
+       (g_markup_parse_context_parse): add a couple assertions
+
 2002-01-28  Havoc Pennington  <hp@redhat.com>
 
        * glib/gmacros.h: get rid of warning here
index dff6a78..f558379 100644 (file)
@@ -1,3 +1,11 @@
+2002-01-28  Havoc Pennington  <hp@pobox.com>
+
+       * glib/gmarkup.c (add_attribute): NULL-terminate
+       context->attr_values so g_strfreev() is safe. 
+       Would previously crash if parsing was ended prior 
+       to ending the start tag.
+       (g_markup_parse_context_parse): add a couple assertions
+
 2002-01-28  Havoc Pennington  <hp@redhat.com>
 
        * glib/gmacros.h: get rid of warning here
index dff6a78..f558379 100644 (file)
@@ -1,3 +1,11 @@
+2002-01-28  Havoc Pennington  <hp@pobox.com>
+
+       * glib/gmarkup.c (add_attribute): NULL-terminate
+       context->attr_values so g_strfreev() is safe. 
+       Would previously crash if parsing was ended prior 
+       to ending the start tag.
+       (g_markup_parse_context_parse): add a couple assertions
+
 2002-01-28  Havoc Pennington  <hp@redhat.com>
 
        * glib/gmacros.h: get rid of warning here
index dff6a78..f558379 100644 (file)
@@ -1,3 +1,11 @@
+2002-01-28  Havoc Pennington  <hp@pobox.com>
+
+       * glib/gmarkup.c (add_attribute): NULL-terminate
+       context->attr_values so g_strfreev() is safe. 
+       Would previously crash if parsing was ended prior 
+       to ending the start tag.
+       (g_markup_parse_context_parse): add a couple assertions
+
 2002-01-28  Havoc Pennington  <hp@redhat.com>
 
        * glib/gmacros.h: get rid of warning here
index dff6a78..f558379 100644 (file)
@@ -1,3 +1,11 @@
+2002-01-28  Havoc Pennington  <hp@pobox.com>
+
+       * glib/gmarkup.c (add_attribute): NULL-terminate
+       context->attr_values so g_strfreev() is safe. 
+       Would previously crash if parsing was ended prior 
+       to ending the start tag.
+       (g_markup_parse_context_parse): add a couple assertions
+
 2002-01-28  Havoc Pennington  <hp@redhat.com>
 
        * glib/gmacros.h: get rid of warning here
index dff6a78..f558379 100644 (file)
@@ -1,3 +1,11 @@
+2002-01-28  Havoc Pennington  <hp@pobox.com>
+
+       * glib/gmarkup.c (add_attribute): NULL-terminate
+       context->attr_values so g_strfreev() is safe. 
+       Would previously crash if parsing was ended prior 
+       to ending the start tag.
+       (g_markup_parse_context_parse): add a couple assertions
+
 2002-01-28  Havoc Pennington  <hp@redhat.com>
 
        * glib/gmacros.h: get rid of warning here
index dff6a78..f558379 100644 (file)
@@ -1,3 +1,11 @@
+2002-01-28  Havoc Pennington  <hp@pobox.com>
+
+       * glib/gmarkup.c (add_attribute): NULL-terminate
+       context->attr_values so g_strfreev() is safe. 
+       Would previously crash if parsing was ended prior 
+       to ending the start tag.
+       (g_markup_parse_context_parse): add a couple assertions
+
 2002-01-28  Havoc Pennington  <hp@redhat.com>
 
        * glib/gmacros.h: get rid of warning here
index bf7ff37..f20ee36 100644 (file)
@@ -732,6 +732,7 @@ add_attribute (GMarkupParseContext *context, char *name)
   context->attr_names[context->cur_attr] = name;
   context->attr_values[context->cur_attr] = NULL;
   context->attr_names[context->cur_attr+1] = NULL;
+  context->attr_values[context->cur_attr+1] = NULL;
 }
 
 /**
@@ -1196,8 +1197,12 @@ g_markup_parse_context_parse (GMarkupParseContext *context,
                      g_free (context->attr_values[pos]);
                      context->attr_names[pos] = context->attr_values[pos] = NULL;
                    }
-                  context->cur_attr = -1;
-
+                  g_assert (context->cur_attr == -1);
+                  g_assert (context->attr_names == NULL ||
+                            context->attr_names[0] == NULL);
+                  g_assert (context->attr_values == NULL ||
+                            context->attr_values[0] == NULL);
+                  
                   if (tmp_error != NULL)
                     {
                       mark_error (context, tmp_error);