[FFmpeg-devel] [PATCH] IVF demuxer

Reimar Döffinger Reimar.Doeffinger
Sat May 22 09:17:39 CEST 2010


On Fri, May 21, 2010 at 06:10:28PM -0400, David Conrad wrote:
> On May 21, 2010, at 1:23 AM, Reimar D?ffinger wrote:
> 
> > On Thu, May 20, 2010 at 09:26:23PM -0400, David Conrad wrote:
> >> +    int ret, size = get_le32(s->pb);
> > 
> > Forgot: reading a 32 bit value into a signed int and using it
> > in av_get_packet without range check seems like a really bad idea to me.
> 
> av_get_packet has     if((unsigned)size < (unsigned)size + FF_INPUT_BUFFER_PADDING_SIZE)
> 
> which should check for it (though iirc there were some questions about it relied on undefined overflow behaviour?)

No, it only checks for overflow due to adding padding.
With size < 0 e.g. get_buffer won't read any data so you would
always get an empty packet, thus doing a several GB malloc
and the free.
It should be safe to do as it is, but it's not a good implementation IMO.



More information about the ffmpeg-devel mailing list