On Fri, Oct 09 2015, Rasmus Villemoes <li...@rasmusvillemoes.dk> wrote:
> It's hard not to agree with the overall "let's make it more robust if it > can be done sanely+cheaply+cleanly". I was a bit skeptical about whether > those three requirements could be met, since we'd have to do > byte-by-byte traversal of the string, maybe-copying it to the output as > we go along, but then right-alignment would require us to do a memmove, > but not before we've done some complicated bookkeeping > exercise. However, now that I read the source again, it seems that Al > Viro already did that exercise when he added dentry(). So maybe it's > doable without a net increase in LOC. Something like this. The net increase is because I added a comment. Passes the new printf test suite, but I'm not sure that's thorough enough yet - still, it's better than nothing. There's also this small bonus: $ scripts/bloat-o-meter /tmp/vsprintf.o.{old,new} add/remove: 1/0 grow/shrink: 0/2 up/down: 178/-245 (-67) function old new delta widen_string.isra - 178 +178 string.isra 186 109 -77 dentry_name.isra 358 190 -168 Rasmus Villemoes (3): 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 | 98 +++++++++++++++++++++++++++++++--------------------------- 1 file changed, 52 insertions(+), 46 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/