* 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>
|
2010-09-12 Vladimir Serbinenko <phcoder@gmail.com>
|
||||||
|
|
||||||
* grub-core/kern/emu/main.c (main): Call hostfs_init only after init_all.
|
* 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;
|
grub_size_t s;
|
||||||
static char buf[PREALLOC_SIZE + 1];
|
static char buf[PREALLOC_SIZE + 1];
|
||||||
char *curbuf = buf;
|
char *curbuf = buf;
|
||||||
|
va_list ap2;
|
||||||
|
va_copy (ap2, args);
|
||||||
|
|
||||||
s = grub_vsnprintf_real (buf, PREALLOC_SIZE, fmt, args);
|
s = grub_vsnprintf_real (buf, PREALLOC_SIZE, fmt, args);
|
||||||
if (s > PREALLOC_SIZE)
|
if (s > PREALLOC_SIZE)
|
||||||
|
@ -210,7 +212,7 @@ grub_vprintf (const char *fmt, va_list args)
|
||||||
buf[PREALLOC_SIZE] = 0;
|
buf[PREALLOC_SIZE] = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
s = grub_vsnprintf_real (curbuf, s, fmt, args);
|
s = grub_vsnprintf_real (curbuf, s, fmt, ap2);
|
||||||
}
|
}
|
||||||
|
|
||||||
grub_xputs (curbuf);
|
grub_xputs (curbuf);
|
||||||
|
@ -947,11 +949,13 @@ grub_xvasprintf (const char *fmt, va_list ap)
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
|
va_list ap2;
|
||||||
|
va_copy (ap2, ap);
|
||||||
ret = grub_malloc (as + 1);
|
ret = grub_malloc (as + 1);
|
||||||
if (!ret)
|
if (!ret)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
s = grub_vsnprintf_real (ret, as, fmt, ap);
|
s = grub_vsnprintf_real (ret, as, fmt, ap2);
|
||||||
if (s <= as)
|
if (s <= as)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue