diff options
Diffstat (limited to 'linux/dev/kernel')
-rw-r--r-- | linux/dev/kernel/printk.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/linux/dev/kernel/printk.c b/linux/dev/kernel/printk.c index 2ff52d1..9dc86cb 100644 --- a/linux/dev/kernel/printk.c +++ b/linux/dev/kernel/printk.c @@ -26,6 +26,7 @@ #define MACH_INCLUDE #include <stdarg.h> #include <asm/system.h> +#include <kern/assert.h> static char buf[2048]; @@ -40,14 +41,14 @@ printk (char *fmt, ...) va_list args; int n, flags; extern void cnputc (); - extern int linux_vsprintf (char *buf, char *fmt,...); char *p, *msg, *buf_end; static int msg_level = -1; save_flags (flags); cli (); va_start (args, fmt); - n = linux_vsprintf (buf + 3, fmt, args); + n = vsnprintf (buf + 3, sizeof (buf) - 3, fmt, args); + assert (n <= sizeof (buf) - 3); buf_end = buf + 3 + n; va_end (args); for (p = buf + 3; p < buf_end; p++) |