Messages in this thread | | | Date | Sat, 10 Oct 2015 09:47:54 +0200 | From | Ingo Molnar <> | Subject | Re: [RFC 0/3] eliminate potential race in string() (was: [PATCH] string: Improve the generic strlcpy() implementation) |
| |
* Rasmus Villemoes <linux@rasmusvillemoes.dk> wrote:
> On Fri, Oct 09 2015, Rasmus Villemoes <linux@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(-)
Looks good to me!
Thanks,
Ingo
| |