ffmpeg | branch: master | James Almer <jamr...@gmail.com> | Sat Oct 28 15:29:23 2017 -0300| [220603d0c83ef1fe2727813f81bab5a96cfb046d] | committer: James Almer
Merge commit '279e3aaa14daba6b7a37d75f3fb6e29c732d123f' * commit '279e3aaa14daba6b7a37d75f3fb6e29c732d123f': flv: Validate the packet size Merged-by: James Almer <jamr...@gmail.com> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=220603d0c83ef1fe2727813f81bab5a96cfb046d --- libavformat/flvdec.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libavformat/flvdec.c b/libavformat/flvdec.c index 2d89bef15f..0217cef842 100644 --- a/libavformat/flvdec.c +++ b/libavformat/flvdec.c @@ -1152,6 +1152,12 @@ retry_duration: st->codecpar->codec_id == AV_CODEC_ID_MPEG4) { int type = avio_r8(s->pb); size--; + + if (size < 0) { + ret = AVERROR_INVALIDDATA; + goto leave; + } + if (st->codecpar->codec_id == AV_CODEC_ID_H264 || st->codecpar->codec_id == AV_CODEC_ID_MPEG4) { // sign extension int32_t cts = (avio_rb24(s->pb) + 0xff800000) ^ 0xff800000; ====================================================================== diff --cc libavformat/flvdec.c index 2d89bef15f,1b29740f41..0217cef842 --- a/libavformat/flvdec.c +++ b/libavformat/flvdec.c @@@ -1148,11 -909,16 +1148,17 @@@ retry_duration } if (st->codecpar->codec_id == AV_CODEC_ID_AAC || - st->codecpar->codec_id == AV_CODEC_ID_H264) { + st->codecpar->codec_id == AV_CODEC_ID_H264 || + st->codecpar->codec_id == AV_CODEC_ID_MPEG4) { int type = avio_r8(s->pb); size--; + + if (size < 0) { + ret = AVERROR_INVALIDDATA; + goto leave; + } + - if (st->codecpar->codec_id == AV_CODEC_ID_H264) { + if (st->codecpar->codec_id == AV_CODEC_ID_H264 || st->codecpar->codec_id == AV_CODEC_ID_MPEG4) { // sign extension int32_t cts = (avio_rb24(s->pb) + 0xff800000) ^ 0xff800000; pts = dts + cts; _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog