diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2012-04-06 21:17:05 +0200 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2012-04-06 21:17:05 +0200 |
commit | d62085e5c5eb47cc2442899b125c799cb90e6d7b (patch) | |
tree | 7c58aeb243465be33d07a341130c4dc9bbcfbba7 /kern/debug.c | |
parent | 71f231da83fdd75deab3ce1b8643da50b6f574f5 (diff) | |
download | gnumach-d62085e5c5eb47cc2442899b125c799cb90e6d7b.tar.gz gnumach-d62085e5c5eb47cc2442899b125c799cb90e6d7b.tar.bz2 gnumach-d62085e5c5eb47cc2442899b125c799cb90e6d7b.zip |
Do not take address of va_list variable
This breaks on x86_64, where it is an array and thus gets bogus results.
* ddb/db_output.c (db_printf, kdbprintf): Pass copy of va_list variable instead
of its address.
* kern/debug.c (panic, log): Likewise.
* kern/printf.c (vprintf, iprintf, sprintf, vsnprintf): Likewise.
(_doprnt): Take va_list instead of va_list *, fix usage and comment accordingly.
* kern/printf.h (_doprnt): Take va_list instead of va_list *.
Diffstat (limited to 'kern/debug.c')
-rw-r--r-- | kern/debug.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/kern/debug.c b/kern/debug.c index 65c43fba..09c8ff48 100644 --- a/kern/debug.c +++ b/kern/debug.c @@ -168,7 +168,7 @@ panic(const char *s, ...) #endif printf(": "); va_start(listp, s); - _doprnt(s, &listp, do_cnputc, 0, 0); + _doprnt(s, listp, do_cnputc, 0, 0); va_end(listp); printf("\n"); @@ -203,7 +203,7 @@ log(int level, const char *fmt, ...) level++; #endif va_start(listp, fmt); - _doprnt(fmt, &listp, do_cnputc, 0, 0); + _doprnt(fmt, listp, do_cnputc, 0, 0); va_end(listp); } |