Re: [PATCH] lib/vsprintf.c: fix the incorrect return value ofvsnprintf()

From: Al Viro
Date: Thu Jul 18 2013 - 02:50:15 EST


On Thu, Jul 18, 2013 at 02:28:49PM +0800, Chen Gang wrote:
> When "str >= end", necessary to reset 'str' to "end - 1", or the return
> value will be larger than the real one, the callers which depend on the
> return value, may cause memory overflow.

You do realize that snprintf(s, 1, "abc") should return 3, not 1? The
goal off snprintf() is _not_ just to truncate the output; return value
tells how much should the buffer had been to fit the whole thing.
--
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/