]> git.sesse.net Git - ffmpeg/commitdiff
avformat/asfdec_f: Check name_len for overflow
authorMichael Niedermayer <michael@niedermayer.cc>
Thu, 15 Oct 2020 20:04:56 +0000 (22:04 +0200)
committerMichael Niedermayer <michael@niedermayer.cc>
Tue, 20 Oct 2020 13:33:13 +0000 (15:33 +0200)
Fixes: signed integer overflow: -1172299744 * 2 cannot be represented in type 'int'
Fixes: 26258/clusterfuzz-testcase-minimized-ffmpeg_DEMUXER_fuzzer-5672758488596480
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavformat/asfdec_f.c

index 103155e9e7e965e07e4f184ba3981f4653c034e2..ff9107d73fabebb5c43606f1a7b7271fc349e05c 100644 (file)
@@ -769,6 +769,8 @@ static int asf_read_marker(AVFormatContext *s, int64_t size)
         avio_rl32(pb);             // send time
         avio_rl32(pb);             // flags
         name_len = avio_rl32(pb);  // name length
+        if ((unsigned)name_len > INT_MAX / 2)
+            return AVERROR_INVALIDDATA;
         if ((ret = avio_get_str16le(pb, name_len * 2, name,
                                     sizeof(name))) < name_len)
             avio_skip(pb, name_len - ret);