]> git.sesse.net Git - ffmpeg/commitdiff
avformat/iff: fix memleak when get st->codecpar->extradata failed in iff_read_header
authorSteven Liu <lq@chinaffmpeg.org>
Wed, 9 Oct 2019 03:50:49 +0000 (11:50 +0800)
committerSteven Liu <lq@chinaffmpeg.org>
Thu, 10 Oct 2019 01:54:48 +0000 (09:54 +0800)
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
libavformat/iff.c

index f4d806b7b8d910391ec59ca0d3a5fead69d3e807..2a3729f97e7cc11853077d82c41826bd512a584e 100644 (file)
@@ -529,8 +529,11 @@ static int iff_read_header(AVFormatContext *s)
             st->codecpar->extradata      = av_malloc(data_size + IFF_EXTRA_VIDEO_SIZE + AV_INPUT_BUFFER_PADDING_SIZE);
             if (!st->codecpar->extradata)
                 return AVERROR(ENOMEM);
-            if (avio_read(pb, st->codecpar->extradata + IFF_EXTRA_VIDEO_SIZE, data_size) < 0)
+            if (avio_read(pb, st->codecpar->extradata + IFF_EXTRA_VIDEO_SIZE, data_size) < 0) {
+                av_freep(&st->codecpar->extradata);
+                st->codecpar->extradata_size = 0;
                 return AVERROR(EIO);
+            }
             break;
 
         case ID_BMHD: