mirror of
https://git.savannah.gnu.org/git/grub.git
synced 2026-10-20 22:48:22 +00:00
* grub-core/kern/misc.c (grub_vprintf): Use va_copy when necessary.
(grub_xvasprintf): Likewise.
This commit is contained in:
1 parent
4870900f8f
commit
768ec2e2ad
2 files changed
+11
-2
No files matched your search
@@ -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;
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user