avformat/wavdec: Check chunk_size
author李赞 <lizan@ruc.edu.cn>
Wed, 10 May 2017 12:55:34 +0000 (14:55 +0200)
committerMichael Niedermayer <michael@niedermayer.cc>
Sat, 13 May 2017 22:21:49 +0000 (00:21 +0200)
Fixes integer overflow and out of array access

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 3d232196372f309a75ed074c4cef30578eec1782)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavformat/wavdec.c

index 602ce97..81dbc9f 100644 (file)
@@ -841,6 +841,8 @@ static int w64_read_header(AVFormatContext *s)
                 chunk_key[4] = 0;
                 avio_read(pb, chunk_key, 4);
                 chunk_size = avio_rl32(pb);
+                if (chunk_size == UINT32_MAX)
+                    return AVERROR_INVALIDDATA;
 
                 value = av_mallocz(chunk_size + 1);
                 if (!value)