Commit d97106ab authored by Linus Torvalds's avatar Linus Torvalds

Make %p print '(null)' for NULL pointers

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: default avatarTrent Piepho <xyzzy@speakeasy.org>
Acked-by: default avatarHarvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 3bfacef4
...@@ -661,6 +661,9 @@ static char *ip4_addr_string(char *buf, char *end, u8 *addr, int field_width, ...@@ -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) 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) { switch (*fmt) {
case 'F': case 'F':
ptr = dereference_function_descriptor(ptr); ptr = dereference_function_descriptor(ptr);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment