[FFmpeg-cvslog] riff: only warn on a bad INFO chunk code size instead of failing

Justin Ruggles git at videolan.org
Tue Nov 27 14:14:29 CET 2012


ffmpeg | branch: master | Justin Ruggles <justin.ruggles at gmail.com> | Sun Nov 25 12:38:58 2012 -0500| [3c370f5abc55739a261534b9f9bdc739cedbbbb9] | committer: Justin Ruggles

riff: only warn on a bad INFO chunk code size instead of failing

fixes Bug 392

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=3c370f5abc55739a261534b9f9bdc739cedbbbb9
---

 libavformat/riff.c |    9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/libavformat/riff.c b/libavformat/riff.c
index 11e2a64..7313092 100644
--- a/libavformat/riff.c
+++ b/libavformat/riff.c
@@ -726,9 +726,10 @@ 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;
+            av_log(s, AV_LOG_WARNING, "too big INFO subchunk\n");
+            break;
         }
 
         chunk_size += (chunk_size & 1);
@@ -743,8 +744,8 @@ int ff_read_riff_info(AVFormatContext *s, int64_t size)
 
         if (avio_read(pb, value, chunk_size) != chunk_size) {
             av_free(value);
-            av_log(s, AV_LOG_ERROR, "premature end of file while reading INFO tag\n");
-            return AVERROR_INVALIDDATA;
+            av_log(s, AV_LOG_WARNING, "premature end of file while reading INFO tag\n");
+            break;
         }
 
         value[chunk_size] = 0;



More information about the ffmpeg-cvslog mailing list