From c046890191628b607e479e4845d48acc9c879143 Mon Sep 17 00:00:00 2001 From: Luca Barbato Date: Sat, 20 Apr 2013 13:36:44 +0200 Subject: [PATCH] riff: check for eof if chunk size and code are 0 Prevent an infinite loop. Inspired by a patch from Michael Niedermayer CC: libav-stable@libav.org Signed-off-by: Diego Biurrun (cherry picked from commit 8e329dba378cef0ff6400c7df9c51da167d5a1f0) Signed-off-by: Reinhard Tartler --- libavformat/riff.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libavformat/riff.c b/libavformat/riff.c index 79b2670481..e9463c0973 100644 --- a/libavformat/riff.c +++ b/libavformat/riff.c @@ -728,6 +728,10 @@ int ff_read_riff_info(AVFormatContext *s, int64_t size) if (!chunk_code) { if (chunk_size) avio_skip(pb, chunk_size); + else if (pb->eof_reached) { + av_log(s, AV_LOG_WARNING, "truncated file\n"); + return AVERROR_EOF; + } continue; }