* grub-core/kern/misc.c (grub_vprintf): Use va_copy when necessary.
(grub_xvasprintf): Likewise.
This commit is contained in:
parent
4870900f8f
commit
768ec2e2ad
2 changed files with 11 additions and 2 deletions
|
@ -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.
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue