diff --git a/ChangeLog b/ChangeLog index cf2904ea4..3a996def4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2007-06-16 Mathias Hasselmann + + * glib/gstring.c: Correctly use g_printf_string_upper_bound + in g_string_append_vprintf. Fixes #447933. + 2007-06-15 Sebastian Wilhelmi * docs/reference/glib/tmpl/threads.sgml: Extended the comments on diff --git a/glib/gstring.c b/glib/gstring.c index bf15f5829..ed15223d8 100644 --- a/glib/gstring.c +++ b/glib/gstring.c @@ -1278,12 +1278,16 @@ g_string_append_vprintf (GString *string, const gchar *fmt, va_list args) { + va_list sneak; gsize length; g_return_if_fail (string != NULL); g_return_if_fail (fmt != NULL); - length = g_printf_string_upper_bound (fmt, args); + G_VA_COPY (sneak, args); + length = g_printf_string_upper_bound (fmt, sneak); + va_end (sneak); + g_string_maybe_expand (string, length); length = g_vsnprintf (string->str + string->len, length, fmt, args); string->len += length;