From 04f6e3079d8a141aa3ce5aa0382cc182ecfc41a1 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Mon, 24 Sep 2007 23:03:55 +0000 Subject: [PATCH] Don't traverse the same va_list twice - does not work on x86_64. --- gnulib-local/ChangeLog | 6 ++++++ gnulib-local/lib/vasprintf.c | 3 ++- gnulib-local/modules/vasprintf.diff | 22 +++++++++++++++++----- 3 files changed, 25 insertions(+), 6 deletions(-) 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 ---- -- 2.47.3