Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>2012-01-15 19:58:21 +0400
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>2012-01-15 23:37:54 +0400
commitea3abcd58f83673bf2fe28170339f19ddf683442 (patch)
tree350cd125b82af645c6bf4567dc3dc1c62084f02e /libavformat/riff.c
parent719a576f04f49116fe68a830dfee3ca651db1de8 (diff)
Fix ff_get_guid for short reads or errors.
Current code would just return uninitialized data with no way to detect this condition. Instead, fill the whole GUID with 0 in that case. Fixes valgrind uninitialized data errors in fate-seek-lavf_asf. Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Diffstat (limited to 'libavformat/riff.c')
-rw-r--r--libavformat/riff.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/libavformat/riff.c b/libavformat/riff.c
index 0a2bddcca8..0bfee5a983 100644
--- a/libavformat/riff.c
+++ b/libavformat/riff.c
@@ -675,7 +675,8 @@ void ff_parse_specific_params(AVCodecContext *stream, int *au_rate, int *au_ssiz
void ff_get_guid(AVIOContext *s, ff_asf_guid *g)
{
assert(sizeof(*g) == 16);
- avio_read(s, *g, sizeof(*g));
+ if (avio_read(s, *g, sizeof(*g)) < (int)sizeof(*g))
+ memset(*g, 0, sizeof(*g));
}
enum CodecID ff_codec_guid_get_id(const AVCodecGuid *guids, ff_asf_guid guid)