[FFmpeg-devel] [PATCH 2/2] riff: retry reading metadata without padding if it fails with
Michael Niedermayer
michaelni at gmx.at
Thu Oct 18 05:07:06 CEST 2012
Fixes Ticket1821
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
---
libavformat/riff.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/libavformat/riff.c b/libavformat/riff.c
index ee3542c..769a4d6 100644
--- a/libavformat/riff.c
+++ b/libavformat/riff.c
@@ -771,8 +771,13 @@ int ff_read_riff_info(AVFormatContext *s, int64_t size)
chunk_code = avio_rl32(pb);
chunk_size = avio_rl32(pb);
if (chunk_size > end || end - chunk_size < cur || chunk_size == UINT_MAX) {
- av_log(s, AV_LOG_ERROR, "too big INFO subchunk\n");
- return AVERROR_INVALIDDATA;
+ avio_seek(pb, -9, SEEK_CUR);
+ chunk_code = avio_rl32(pb);
+ chunk_size = avio_rl32(pb);
+ if (chunk_size > end || end - chunk_size < cur || chunk_size == UINT_MAX) {
+ av_log(s, AV_LOG_ERROR, "too big INFO subchunk\n");
+ return AVERROR_INVALIDDATA;
+ }
}
chunk_size += (chunk_size & 1);
--
1.7.9.5
More information about the ffmpeg-devel
mailing list