[PATCH] vfprint: validate nargs and argument-based offsets

Joseph S. Myers joseph@codesourcery.com
Mon Mar 5 17:56:00 GMT 2012


On Mon, 5 Mar 2012, Tomas Hoger wrote:

> A commenter in Red Hat bugzilla proposed different fix:
> 
> https://bugzilla.redhat.com/show_bug.cgi?id=794766#c8
> 
>   The easiest fix would have been to restrict "nargs" to NL_ARGMAX.
> 
>   http://www.opengroup.org/onlinepubs/9699919799/basedefs/limits.h.html#tag_13_23_03_07
> 
> which has the benefit of avoiding possibly large heap allocation in the
> bad case.  Kees, have you considered such approach?

The GNU Coding Standards say to avoid arbitrary limits, so it's correct 
that the number of such arguments should be limited only by available 
memory.  (Note that printf requires that there are no gaps in the numbers 
in the format string, so specifying argument 1000000 with a format string 
that doesn't specify all smaller numbers as well means the format is 
invalid, for example.  For scanf, there isn't this requirement; there may 
be gaps in the numbers as long as pointers were passed for the unused 
arguments.)

-- 
Joseph S. Myers
joseph@codesourcery.com



More information about the Libc-alpha mailing list