summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorJake Mannens <jake72360@gmail.com>2018-06-17 03:24:22 +1000
committerJake Mannens <jake72360@gmail.com>2018-06-17 03:24:22 +1000
commitfb24378c58a3bd5260920a1e9762c027fdbe5cec (patch)
tree15acefff96b0c96d593b9289ad57968766ce4bdf /kernel
parent52608386cfccf465cc8e9a01bb988a10831a9a73 (diff)
Fixed a bug where if multiple %s parameters were passed to vsprintf,
trailing 's' characters were appended to subsequent strings.
Diffstat (limited to 'kernel')
-rw-r--r--kernel/kmain.c2
-rw-r--r--kernel/vsprintf.c4
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':