ffmpeg | branch: master | Michael Niedermayer <mich...@niedermayer.cc> | Sat Mar 9 22:22:55 2019 +0100| [0be0197f49a5ac78c0f8be34fe66dd7657c83c23] | committer: Michael Niedermayer
avcodec/imm4: Unreference previous frame on frame size change Fixes: Out of array access Fixes: 13552/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_IMM4_fuzzer-5767949648920576 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Reviewed-by: Paul B Mahol <one...@gmail.com> Signed-off-by: Michael Niedermayer <mich...@niedermayer.cc> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=0be0197f49a5ac78c0f8be34fe66dd7657c83c23 --- libavcodec/imm4.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/libavcodec/imm4.c b/libavcodec/imm4.c index b66689acab..1a4d0decd7 100644 --- a/libavcodec/imm4.c +++ b/libavcodec/imm4.c @@ -446,11 +446,13 @@ static int decode_frame(AVCodecContext *avctx, void *data, return AVERROR_PATCHWELCOME; } - if (!frame->key_frame && - (avctx->width != width || - avctx->height != height)) { - av_log(avctx, AV_LOG_ERROR, "Frame size change is unsupported.\n"); - return AVERROR_INVALIDDATA; + if (avctx->width != width || + avctx->height != height) { + if (!frame->key_frame) { + av_log(avctx, AV_LOG_ERROR, "Frame size change is unsupported.\n"); + return AVERROR_INVALIDDATA; + } + av_frame_unref(s->prev_frame); } ret = ff_set_dimensions(avctx, width, height); _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog