summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@gmail.com>2019-07-09 10:42:08 +0000
committerEmmanuele Bassi <ebassi@gmail.com>2019-07-09 10:42:08 +0000
commitde4d1077441e38677fc361edf8b243b9086d640d (patch)
treee8f5f4522863cd44ecb6c4415e47b2057785a796
parent1431ff07174b3ac7a40d2ff86e94ae46689a6cd3 (diff)
parent353942c67ed24b5904a5c717003d7871bdba4fed (diff)
downloadglib-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.c8
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);