diff options
author | Luca Barbato <lu_zero@gentoo.org> | 2013-04-20 13:36:44 +0200 |
---|---|---|
committer | Reinhard Tartler <siretart@tauware.de> | 2013-04-21 22:46:41 +0200 |
commit | c046890191628b607e479e4845d48acc9c879143 (patch) | |
tree | 52ed7989e556fd21348feb3b571c0603c1b52a6b | |
parent | d70bad04de8a9bc16188e766bd3b02fd35fa28af (diff) | |
download | ffmpeg-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.c | 4 |
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; } |