* grub-core/kern/misc.c (grub_vprintf): Use va_copy when necessary.

(grub_xvasprintf): Likewise.
This commit is contained in:
Vladimir 'phcoder' Serbinenko 2010-09-12 14:00:44 +02:00
parent 4870900f8f
commit 768ec2e2ad
2 changed files with 11 additions and 2 deletions

View file

@ -1,3 +1,8 @@
2010-09-12 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/kern/misc.c (grub_vprintf): Use va_copy when necessary.
(grub_xvasprintf): Likewise.
2010-09-12 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/kern/emu/main.c (main): Call hostfs_init only after init_all.

View file

@ -196,6 +196,8 @@ grub_vprintf (const char *fmt, va_list args)
grub_size_t s;
static char buf[PREALLOC_SIZE + 1];
char *curbuf = buf;
va_list ap2;
va_copy (ap2, args);
s = grub_vsnprintf_real (buf, PREALLOC_SIZE, fmt, args);
if (s > PREALLOC_SIZE)
@ -210,7 +212,7 @@ grub_vprintf (const char *fmt, va_list args)
buf[PREALLOC_SIZE] = 0;
}
else
s = grub_vsnprintf_real (curbuf, s, fmt, args);
s = grub_vsnprintf_real (curbuf, s, fmt, ap2);
}
grub_xputs (curbuf);
@ -947,11 +949,13 @@ grub_xvasprintf (const char *fmt, va_list ap)
while (1)
{
va_list ap2;
va_copy (ap2, ap);
ret = grub_malloc (as + 1);
if (!ret)
return NULL;
s = grub_vsnprintf_real (ret, as, fmt, ap);
s = grub_vsnprintf_real (ret, as, fmt, ap2);
if (s <= as)
return ret;