On Tue, Dec 19, 2017 at 09:48:49PM +0000, Al Viro wrote: > Well, for example seeing a 0xfffffffffffffff4 where a pointer to object > must have been is a pretty strong hint to start looking for a way for > that ERR_PTR(-ENOMEM) having ended up there... Something like > 0x6e69622f7273752f is almost certainly a misplaced "/usr/bin", i.e. a > pathname overwriting whatever it ends up in, etc. And yes, I have run > into both of those in real life. > > Debugging the situation when crap value has ended up in place of a > pointer is certainly a case where you do want to see what exactly has > ended up in there... Linus, how would you feel about printing ERR_PTRs without molestation? It's not going to leak any information about the kernel address space layout. I'm a little less certain about trying to detect ASCII strings, but I think this is an improvement. diff --git a/lib/vsprintf.c b/lib/vsprintf.c index 01c3957b2de6..c80c60b4b3ef 100644 --- a/lib/vsprintf.c +++ b/lib/vsprintf.c @@ -1859,6 +1859,9 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr, return string(buf, end, "(null)", spec); } + if (IS_ERR(ptr)) + return pointer_string(buf, end, ptr, spec); + switch (*fmt) { case 'F': case 'f': -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>