]> pilppa.com Git - linux-2.6-omap-h63xx.git/commitdiff
Make %p print '(null)' for NULL pointers
authorLinus Torvalds <torvalds@linux-foundation.org>
Sat, 3 Jan 2009 19:46:17 +0000 (11:46 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 3 Jan 2009 19:46:17 +0000 (11:46 -0800)
Before, when we only ever printed out the pointer value itself, a NULL
pointer would never cause issues and might as well be printed out as
just its numeric value.

However, with the extended %p formats, especially %pR, we might validly
want to print out resources for debugging.  And sometimes they don't
even exist, and the resource pointer is just NULL.  Print it out as
such, rather than oopsing.

This is a more generic version of a patch done by Trent Piepho (catching
all %p cases rather than just %pR, and using "(null)" instead of
"[NULL]" to match glibc).

Requested-by: Trent Piepho <xyzzy@speakeasy.org>
Acked-by: Harvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
lib/vsprintf.c

index 3b777025d8769e4ae07838ad12aa7f2d1b82240e..98d632277ca8c932add9d0daf666dd1795c7f785 100644 (file)
@@ -661,6 +661,9 @@ static char *ip4_addr_string(char *buf, char *end, u8 *addr, int field_width,
  */
 static char *pointer(const char *fmt, char *buf, char *end, void *ptr, int field_width, int precision, int flags)
 {
+       if (!ptr)
+               return string(buf, end, "(null)", field_width, precision, flags);
+
        switch (*fmt) {
        case 'F':
                ptr = dereference_function_descriptor(ptr);