From fb24378c58a3bd5260920a1e9762c027fdbe5cec Mon Sep 17 00:00:00 2001 From: Jake Mannens Date: Sun, 17 Jun 2018 03:24:22 +1000 Subject: Fixed a bug where if multiple %s parameters were passed to vsprintf, trailing 's' characters were appended to subsequent strings. --- kernel/kmain.c | 2 +- kernel/vsprintf.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/kernel/kmain.c b/kernel/kmain.c index efdf8e6..52c41d1 100644 --- a/kernel/kmain.c +++ b/kernel/kmain.c @@ -8,5 +8,5 @@ void kmain(void) { printf("Kernel booting...\n"); printf("Kernel booted!\n"); - printf("Hello %s %s\n", "world!", "second"); + printf("%s %s %s\n%s %s %s\n", "first", "second", "third", "fourth", "fifth", "sixth"); } diff --git a/kernel/vsprintf.c b/kernel/vsprintf.c index ed2d8be..dca2906 100644 --- a/kernel/vsprintf.c +++ b/kernel/vsprintf.c @@ -19,7 +19,9 @@ int vsprintf(char *str, char *fmt, va_list ap) { continue; } - fmt++; + type = 0; + + fmt++; while(1) { switch(*fmt) { case 's': -- cgit v1.3