vsprintf.c: use default pointer field size for "(null)" strings
Subsystems (2)
RFC PATCH 1/1 vsprintf.c: use default pointer field size for "(null)" strings
It might be nicer to align the output.
For instance, ACPI messages sometimes have "(null)" pointers.
$ dmesg | grep "(null)" -A 1 -B 1 [ 0.198733] ACPI: Dynamic OEM Table Load: [ 0.198745] ACPI: SSDT (null) 00239 (v02 PmRef Cpu0Ist 00003000 INTL 20051117) [ 0.199294] ACPI: SSDT 7f596e10 001C7 (v02 PmRef Cpu0Cst 00003001 INTL 20051117) [ 0.200708] ACPI: Dynamic OEM Table Load: [ 0.200721] ACPI: SSDT (null) 001C7 (v02 PmRef Cpu0Cst 00003001 INTL 20051117) [ 0.201950] ACPI: SSDT 7f597f10 000D0 (v02 PmRef Cpu1Ist 00003000 INTL 20051117) [ 0.203386] ACPI: Dynamic OEM Table Load: [ 0.203398] ACPI: SSDT (null) 000D0 (v02 PmRef Cpu1Ist 00003000 INTL 20051117) [ 0.203871] ACPI: SSDT 7f595f10 00083 (v02 PmRef Cpu1Cst 00003000 INTL 20051117) [ 0.205301] ACPI: Dynamic OEM Table Load: [ 0.205315] ACPI: SSDT (null) 00083 (v02 PmRef Cpu1Cst 00003000 INTL 20051117)
Signed-off-by Joe Perches <[email protected]>
--- lib/vsprintf.c | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-)
lib/vsprintf.c +5 -2
@@ -988,8 +988,11 @@ static noinline_for_stackchar *pointer (const char *fmt,char *buf,char *end,void *ptr,struct printf_spec spec) { -if (!ptr) +if (!ptr) { +if (spec.field_width ==-1 ) + spec.field_width =2 *sizeof (void *);return string (buf, end,"(null)" , spec); + }switch (*fmt) {case 'F' :
@@ -1031,7 +1034,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 =2 *sizeof (void *); spec.flags |=ZEROPAD ; } spec.base =16 ;