From: Bruno Haible Date: Mon, 24 Sep 2007 23:03:55 +0000 (+0000) Subject: Don't traverse the same va_list twice - does not work on x86_64. X-Git-Tag: v0.17~247 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=04f6e3079d8a141aa3ce5aa0382cc182ecfc41a1;p=thirdparty%2Fgettext.git Don't traverse the same va_list twice - does not work on x86_64. --- diff --git a/gnulib-local/ChangeLog b/gnulib-local/ChangeLog index 6e4232688..1bc49c4b4 100644 --- a/gnulib-local/ChangeLog +++ b/gnulib-local/ChangeLog @@ -1,3 +1,9 @@ +2007-09-24 Bruno Haible + + * lib/vasprintf.c (int_vasprintf): Use va_copy. + * modules/vasprintf.diff: Add dependency to stdarg. + Reported by Cristian Baboi . + 2007-09-01 Bruno Haible * lib/linebreak.c.diff: Update. diff --git a/gnulib-local/lib/vasprintf.c b/gnulib-local/lib/vasprintf.c index ba42506b0..0faa9f6a9 100644 --- a/gnulib-local/lib/vasprintf.c +++ b/gnulib-local/lib/vasprintf.c @@ -38,8 +38,9 @@ int_vasprintf (char **result, const char *format, va_list *args) /* Add one to make sure that it is never zero, which might cause malloc to return NULL. */ size_t total_width = strlen (format) + 1; - va_list ap = *args; + va_list ap; + va_copy (ap, *args); while (*p != '\0') { if (*p++ == '%') diff --git a/gnulib-local/modules/vasprintf.diff b/gnulib-local/modules/vasprintf.diff index 560fdf495..2769843dd 100644 --- a/gnulib-local/modules/vasprintf.diff +++ b/gnulib-local/modules/vasprintf.diff @@ -1,7 +1,7 @@ -*** vasprintf.orig 2007-03-27 22:18:12.000000000 +0200 ---- vasprintf 2007-05-13 18:48:37.000000000 +0200 +*** vasprintf.orig 2007-09-19 00:04:41.000000000 +0200 +--- vasprintf 2007-09-25 00:54:11.000000000 +0200 *************** -*** 3,13 **** +*** 3,14 **** Files: lib/vasprintf.c @@ -9,8 +9,20 @@ m4/vasprintf.m4 Depends-on: -- vasnprintf + extensions +! vasnprintf + stdio + + configure.ac: +--- 3,13 ---- + + Files: + lib/vasprintf.c + m4/vasprintf.m4 + + Depends-on: + extensions +! stdarg stdio configure.ac: ---- 3,11 ----