protect malloc overflow
authorBaptiste Coudurier <baptiste.coudurier@gmail.com>
Mon, 25 Feb 2008 12:45:59 +0000 (12:45 +0000)
committerBaptiste Coudurier <baptiste.coudurier@gmail.com>
Mon, 25 Feb 2008 12:45:59 +0000 (12:45 +0000)
Originally committed as revision 12208 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/mov.c

index b03c44c..f5a7bbf 100644 (file)
@@ -291,6 +291,8 @@ static int mov_read_esds(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom)
         len = mp4_read_descr(c, pb, &tag);
         if (tag == MP4DecSpecificDescrTag) {
             dprintf(c->fc, "Specific MPEG4 header len=%d\n", len);
         len = mp4_read_descr(c, pb, &tag);
         if (tag == MP4DecSpecificDescrTag) {
             dprintf(c->fc, "Specific MPEG4 header len=%d\n", len);
+            if((uint64_t)len > (1<<30))
+                return -1;
             st->codec->extradata = av_mallocz(len + FF_INPUT_BUFFER_PADDING_SIZE);
             if (!st->codec->extradata)
                 return AVERROR(ENOMEM);
             st->codec->extradata = av_mallocz(len + FF_INPUT_BUFFER_PADDING_SIZE);
             if (!st->codec->extradata)
                 return AVERROR(ENOMEM);