diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2012-10-18 04:57:27 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2012-10-18 16:02:50 +0200 |
commit | 1350dffdc6ad27f604ed4cb3c8a6af3c005c3483 (patch) | |
tree | d3c971c8e7e935fb7a7ef3c73e65bac5dc6e2265 /libavformat | |
parent | 3777e6b3bf65be9a925187a9d008c5d422fe17b5 (diff) | |
download | ffmpeg-1350dffdc6ad27f604ed4cb3c8a6af3c005c3483.tar.gz |
riff: dont discard truncated metadata
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat')
-rw-r--r-- | libavformat/riff.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/libavformat/riff.c b/libavformat/riff.c index a919f3f1f9..ee3542ca0f 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); } |