[PATCH v3 00/14] printf stuff for 4.5

From: Rasmus Villemoes
Date: Thu Dec 03 2015 - 15:55:38 EST


I was too late for 4.4, so here's hoping to get this into 4.5.

1-3 fix a theoretical race in printing strings via %s - since we're
reusing existing code from the dentry printer, we actually also win on
code size. Ingo, can I perhaps get you to turn your "looks good to"
into an ack?

4 fixes a problem introduced by converting all bitmap formatting to go
via %pb[l] - it turns out that bitmaps with >= 1<<15 bits are actually
printed sometimes. This isn't necessarily the best fix, but the
discussion died out, so I'm proposing this for now.

5 is just a minor optimization (maybe not so much on
register-challenged arches).

6 I'm not too sure about, but maybe the bitmap problem had been
discovered sooner (it took a little over half a year to be reported)
if these had been in place.

Paranoid-me wanted me to include patch 7, but I don't have strong
feelings for it.

8-14 are minor additions to the test module (some with acks from
Kees).


Rasmus Villemoes (14):
lib/vsprintf.c: pull out padding code from dentry_name()
lib/vsprintf.c: move string() below widen_string()
lib/vsprintf.c: eliminate potential race in string()
lib/vsprintf.c: expand field_width to 24 bits
lib/vsprintf.c: help gcc make number() smaller
lib/vsprintf.c: warn about too large precisions and field widths
lib/kasprintf.c: add sanity check to kvasprintf
lib/test_printf.c: don't BUG
lib/test_printf.c: check for out-of-bound writes
lib/test_printf.c: test precision quirks
lib/test_printf.c: add a few number() tests
lib/test_printf.c: account for kvasprintf tests
lib/test_printf.c: add test for large bitmaps
lib/test_printf.c: test dentry printing

lib/kasprintf.c | 10 +--
lib/test_printf.c | 121 ++++++++++++++++++++++++++++++----
lib/vsprintf.c | 193 +++++++++++++++++++++++++++++++-----------------------
3 files changed, 226 insertions(+), 98 deletions(-)

--
2.6.1

--
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/