This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] vfprintf stack overflow [BZ #16617]


On Fri, Dec 05, 2014 at 02:00:29PM -0800, Paul Eggert wrote:
> On 12/05/2014 12:26 PM, Rich Felker wrote:
> >If N is the size of an actual allocated object, 2*N should not be able
> >to overflow. If it can, it means you already have a situation where an
> >object is so large that legal pointer subtractions overflow ptrdiff_t
> No, because the array elements are of type struct printf_spec, which
> is several bytes in size.  So even if the number of bytes in the
> array exceeds PTRDIFF_MAX by a factor of (say) eight, subtracting
> addresses of array elements won't overflow.
> 
> Admittedly this is all a bit theoretical.

However the code allocating this object (malloc) didn't know it was
going to be used for an array of printf_spec structs. It could have
been used for an array of char, in which case the dangerous overflow
would be possible.

Rich


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]