* grub-core/kern/misc.c (grub_vsnprintf_real): Handle %% properly.
* tests/printf_unit_test.c (printf_test): Add %% tests. Reported by: Paulo Flabiano Smorigo.
This commit is contained in:
parent
af3b06be14
commit
148f100768
3 changed files with 26 additions and 1 deletions
|
@ -1,3 +1,9 @@
|
|||
2013-10-15 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* grub-core/kern/misc.c (grub_vsnprintf_real): Handle %% properly.
|
||||
* tests/printf_unit_test.c (printf_test): Add %% tests.
|
||||
Reported by: Paulo Flabiano Smorigo.
|
||||
|
||||
2013-10-15 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* grub-core/osdep/windows/hostdisk.c (fsync) [__MINGW32__]: Really
|
||||
|
|
|
@ -910,6 +910,12 @@ grub_vsnprintf_real (char *str, grub_size_t max_len, const char *fmt0, va_list a
|
|||
}
|
||||
}
|
||||
|
||||
if (c == '%')
|
||||
{
|
||||
write_char (c);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (curn >= count_args)
|
||||
continue;
|
||||
|
||||
|
|
|
@ -21,13 +21,26 @@
|
|||
#include <grub/test.h>
|
||||
#include <grub/misc.h>
|
||||
|
||||
#define MSG "printf test failed"
|
||||
#define MSG "printf test failed: %s, %s", real, expected
|
||||
|
||||
static void
|
||||
printf_test (void)
|
||||
{
|
||||
char real[512];
|
||||
char expected[512];
|
||||
|
||||
grub_snprintf (real, sizeof (real), "%d%%", 10);
|
||||
snprintf (expected, sizeof (expected), "%d%%", 10);
|
||||
grub_test_assert (strcmp (real, expected) == 0, MSG);
|
||||
|
||||
grub_snprintf (real, sizeof (real), "%d %%", 10);
|
||||
snprintf (expected, sizeof (expected), "%d %%", 10);
|
||||
grub_test_assert (strcmp (real, expected) == 0, MSG);
|
||||
|
||||
grub_snprintf (real, sizeof (real), "%%");
|
||||
snprintf (expected, sizeof (expected), "%%");
|
||||
grub_test_assert (strcmp (real, expected) == 0, MSG);
|
||||
|
||||
grub_snprintf (real, sizeof (real), "%d %d %d", 1, 2, 3);
|
||||
snprintf (expected, sizeof (expected), "%d %d %d", 1, 2, 3);
|
||||
grub_test_assert (strcmp (real, expected) == 0, MSG);
|
||||
|
|
Loading…
Reference in a new issue