Fixes a null pointer bug in cprintf
authorBarret Rhoden <brho@cs.berkeley.edu>
Wed, 7 Apr 2010 08:02:13 +0000 (01:02 -0700)
committerKevin Klues <klueska@cs.berkeley.edu>
Thu, 3 Nov 2011 00:35:41 +0000 (17:35 -0700)
Not that it matters much - it would only happen if you passed a 0 to
cprintf/printk, and you should rarely pass a string directly (format
string issues).  If this bug hit, you'd trap and then deadlock on the
output lock.  Looking at this was on the todo list for a long time, but
it was suddenly triggerable with kfunc cprintf.

kern/src/printf.c

index 86d104b..b858a0b 100644 (file)
@@ -71,6 +71,9 @@ int cprintf(const char *fmt, ...)
        va_list ap;
        int cnt;
 
+       if (!fmt)
+               return 0;
+
        va_start(ap, fmt);
        cnt = vcprintf(fmt, ap);
        va_end(ap);