aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuca Barbato <lu_zero@gentoo.org>2013-04-20 13:36:44 +0200
committerReinhard Tartler <siretart@tauware.de>2013-04-21 22:46:41 +0200
commitc046890191628b607e479e4845d48acc9c879143 (patch)
tree52ed7989e556fd21348feb3b571c0603c1b52a6b
parentd70bad04de8a9bc16188e766bd3b02fd35fa28af (diff)
downloadffmpeg-c046890191628b607e479e4845d48acc9c879143.tar.gz
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 <diego@biurrun.de> (cherry picked from commit 8e329dba378cef0ff6400c7df9c51da167d5a1f0) Signed-off-by: Reinhard Tartler <siretart@tauware.de>
-rw-r--r--libavformat/riff.c4
1 files changed, 4 insertions, 0 deletions
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;
}