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
@@ -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;
|
||||
|
||||
|
||||
Reference in new issue
Block a user