diff options
author | Emmanuele Bassi <ebassi@gmail.com> | 2019-07-09 10:42:08 +0000 |
---|---|---|
committer | Emmanuele Bassi <ebassi@gmail.com> | 2019-07-09 10:42:08 +0000 |
commit | de4d1077441e38677fc361edf8b243b9086d640d (patch) | |
tree | e8f5f4522863cd44ecb6c4415e47b2057785a796 | |
parent | 1431ff07174b3ac7a40d2ff86e94ae46689a6cd3 (diff) | |
parent | 353942c67ed24b5904a5c717003d7871bdba4fed (diff) | |
download | glib-de4d1077441e38677fc361edf8b243b9086d640d.tar.gz |
Merge branch 'backport-945-markup-stack-overrun-glib-2-60' into 'glib-2-60'
Backport !945 “Avoid overrunning stack at the end of the varargs.” to glib-2-60
See merge request GNOME/glib!949
-rw-r--r-- | glib/gmarkup.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/glib/gmarkup.c b/glib/gmarkup.c index 2d94aecaf..6ad5f6c38 100644 --- a/glib/gmarkup.c +++ b/glib/gmarkup.c @@ -2872,9 +2872,10 @@ g_markup_collect_attributes (const gchar *element_name, g_assert_not_reached (); } - type = va_arg (ap, GMarkupCollectType); - attr = va_arg (ap, const char *); written++; + type = va_arg (ap, GMarkupCollectType); + if (type != G_MARKUP_COLLECT_INVALID) + attr = va_arg (ap, const char *); } va_end (ap); @@ -2950,7 +2951,8 @@ failure: } type = va_arg (ap, GMarkupCollectType); - attr = va_arg (ap, const char *); + if (type != G_MARKUP_COLLECT_INVALID) + attr = va_arg (ap, const char *); } va_end (ap); |