summaryrefslogtreecommitdiff
path: root/libavformat/riff.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-10-18 04:57:27 +0200
committerMichael Niedermayer <michaelni@gmx.at>2012-10-18 16:02:50 +0200
commit1350dffdc6ad27f604ed4cb3c8a6af3c005c3483 (patch)
treed3c971c8e7e935fb7a7ef3c73e65bac5dc6e2265 /libavformat/riff.c
parent3777e6b3bf65be9a925187a9d008c5d422fe17b5 (diff)
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/riff.c')
-rw-r--r--libavformat/riff.c8
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);
}