Re: [PATCH] printk: Let %pR handle NULL pointers

From: Harvey Harrison
Date: Sat Jan 03 2009 - 14:34:17 EST


On Sat, 2009-01-03 at 09:10 -0800, Linus Torvalds wrote:
>
> On Sat, 3 Jan 2009, Trent Piepho wrote:
> >
> > Have %pR print "[NULL]" for the resource range when passed a NULL pointer.
>
> Wouldn't it be much nicer to just do it for _all_ pointer types?
>
> IOW, a patch more like the appended.
>
> Also, I'm not 100% sure that "[NULL]" is the right thing to print. Not
> that I know if there's anything better. Testing glibc, it prints "(nil)"
> for a NULL string (%s) and "(null)" for a NULL pointer (%p). Which makes
> no more sense than anything else, but maybe we could make the NULL %p case
> at least match that if for no other reason than the fact that it would
> match _something_.
>
> Added the other people who added %pX modifiers to the cc - I guess the
> networking people probably never have NULL pointers there anyway, but
> maybe they have opinions.

I'm of two minds here, the only reason I didn't add NULL handling to %pI[46] and
%pM is because they were previously printing values rather than pointers and
was guaranteed to never be null. Also, with the current values, the output
is always a fixed-width for %pI6, %pM. %pI4 can vary from 7-15 chars, but
[NULL] is only 6 chars (and obviously has a totally different format).
Of course it's hard to see how a caller could screw that up...but since I
didn't check everybody using it, I didn't risk it at the time.

On the other hand, I'm not sure if we want each %p formatting to have to deal
with its own null-formatting.

I'll do an audit of a handful of pI46, pM users currently, and try to find places were
a short string/completely different format string could cause problems...but
your patch is fine for today as all of the existing users [cs]houldn't be passing
in null anyways.

Harvey

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/