[FFmpeg-devel] [PATCH 1/2] riff: dont discard truncated metadata

Michael Niedermayer michaelni at gmx.at
Thu Oct 18 05:07:05 CEST 2012


Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
---
 libavformat/riff.c |    8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/libavformat/riff.c b/libavformat/riff.c
index a919f3f..ee3542c 100644
--- a/libavformat/riff.c
+++ b/libavformat/riff.c
@@ -777,7 +777,7 @@ int ff_read_riff_info(AVFormatContext *s, int64_t size)
 
         chunk_size += (chunk_size & 1);
 
-        value = av_malloc(chunk_size + 1);
+        value = av_mallocz(chunk_size + 1);
         if (!value) {
             av_log(s, AV_LOG_ERROR, "out of memory, unable to read INFO tag\n");
             return AVERROR(ENOMEM);
@@ -786,13 +786,9 @@ int ff_read_riff_info(AVFormatContext *s, int64_t size)
         AV_WL32(key, chunk_code);
 
         if (avio_read(pb, value, chunk_size) != chunk_size) {
-            av_freep(&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");
         }
 
-        value[chunk_size] = 0;
-
         av_dict_set(&s->metadata, key, value, AV_DICT_DONT_STRDUP_VAL);
     }
 
-- 
1.7.9.5



More information about the ffmpeg-devel mailing list