Messages in this thread | | | Date | Tue, 24 Nov 2015 00:39:16 +0200 | Subject | Re: [PATCH 07/14] lib/vsprintf.c: slightly refactor vscnprintf() | From | Andy Shevchenko <> |
| |
On Mon, Nov 23, 2015 at 11:29 PM, Rasmus Villemoes <linux@rasmusvillemoes.dk> wrote: > If we're given a size of 0, the vsnprintf() won't have any side > effects, and neither "i < size" or "size != 0" will trigger. So we > might as well return 0 immediately. > > Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk> > --- > lib/vsprintf.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/lib/vsprintf.c b/lib/vsprintf.c > index 8af5535fd738..e22a6189548f 100644 > --- a/lib/vsprintf.c > +++ b/lib/vsprintf.c > @@ -2036,13 +2036,14 @@ int vscnprintf(char *buf, size_t size, const char *fmt, va_list args) > { > int i; > > + if (unlikely(!size)) > + return 0; > +
Might it potentially shadow any issue when run vsnprintf(buf, 0, fmt, args); with certain arguments? I can imagine something like %pV with unstable pointer.
> i = vsnprintf(buf, size, fmt, args); > > if (likely(i < size)) > return i; > - if (size != 0) > - return size - 1; > - return 0; > + return size - 1; > } > EXPORT_SYMBOL(vscnprintf); > > -- > 2.6.1 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/
-- With Best Regards, Andy Shevchenko
| |