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 8e329dba37)

Signed-off-by: Reinhard Tartler <siretart@tauware.de>
This commit is contained in:
Luca Barbato 2013-04-20 13:36:44 +02:00 committed by Reinhard Tartler
parent d70bad04de
commit c046890191
1 changed files with 4 additions and 0 deletions

View File

@ -728,6 +728,10 @@ int ff_read_riff_info(AVFormatContext *s, int64_t size)
if (!chunk_code) { if (!chunk_code) {
if (chunk_size) if (chunk_size)
avio_skip(pb, 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; continue;
} }