From 244fa4b5da8c8a211b3aa7ee03e202c1a522ef97 Mon Sep 17 00:00:00 2001 From: Grant Likely Date: Thu, 31 May 2012 16:26:08 -0700 Subject: [PATCH] --- yaml --- r: 309715 b: refs/heads/master c: 725fe002d315c2501c110b7245d3eb4f4535f4d6 h: refs/heads/master i: 309713: 0886ee25065b72bb81b9a632df9b2101882b3c6c 309711: 2f1a8d38e05916ca19434caece4b71bb773f5263 v: v3 --- [refs] | 2 +- trunk/lib/vsprintf.c | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index c1e1f1c1ca03..207bd4730028 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d84970bbaf9a09b3fc60c18ee6d59bc9cb4c3b8a +refs/heads/master: 725fe002d315c2501c110b7245d3eb4f4535f4d6 diff --git a/trunk/lib/vsprintf.c b/trunk/lib/vsprintf.c index 5391299c1e78..b8fbd275bc46 100644 --- a/trunk/lib/vsprintf.c +++ b/trunk/lib/vsprintf.c @@ -870,13 +870,15 @@ static noinline_for_stack char *pointer(const char *fmt, char *buf, char *end, void *ptr, struct printf_spec spec) { + int default_width = 2 * sizeof(void *) + (spec.flags & SPECIAL ? 2 : 0); + if (!ptr && *fmt != 'K') { /* * Print (null) with the same width as a pointer so it makes * tabular output look nice. */ if (spec.field_width == -1) - spec.field_width = 2 * sizeof(void *); + spec.field_width = default_width; return string(buf, end, "(null)", spec); } @@ -931,7 +933,7 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr, */ if (in_irq() || in_serving_softirq() || in_nmi()) { if (spec.field_width == -1) - spec.field_width = 2 * sizeof(void *); + spec.field_width = default_width; return string(buf, end, "pK-error", spec); } if (!((kptr_restrict == 0) || @@ -948,7 +950,7 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr, } spec.flags |= SMALL; if (spec.field_width == -1) { - spec.field_width = 2 * sizeof(void *); + spec.field_width = default_width; spec.flags |= ZEROPAD; } spec.base = 16;