On Mon, Nov 23 2015, Andy Shevchenko <[email protected]> wrote:
> On Mon, Nov 23, 2015 at 11:29 PM, Rasmus Villemoes > <[email protected]> wrote: >> The field width is overloaded to pass some extra information for >> some %p extensions (e.g. #bits for %pb). But we might silently >> truncate the passed value when we stash it in struct printf_spec (see >> e.g. "lib/vsprintf.c: expand field_width to 24 bits"). Hopefully 23 >> value bits should now be enough for everybody, but if not, let's make >> some noise. >> >> Do the same for the precision. In both cases, clamping seems more >> sensible than truncating. While, according to POSIX, "A negative >> precision is taken as if the precision were omitted.", the kernel's >> printf has always treated that case as if the precision was 0, so we >> use that as lower bound. For the field width, the smallest >> representable value is actually -(1<<23), but a negative field width >> means 'set the LEFT flag and use the absolute value', so we want the >> absolute value to fit. >> > > Do we need to do the same for bstr_printf() ? > Heh, apparently I didn't learn anything from 762abb51. Thanks, will fix in next spin. Rasmus -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

