]> git.sesse.net Git - ffmpeg/commitdiff
avformat/id3v2: Check the return from avio_get_str()
authorMichael Niedermayer <michael@niedermayer.cc>
Sun, 31 Jan 2021 15:14:03 +0000 (16:14 +0100)
committerMichael Niedermayer <michael@niedermayer.cc>
Wed, 10 Feb 2021 11:28:29 +0000 (12:28 +0100)
Fixes: out of array access
Fixes: 29446/clusterfuzz-testcase-minimized-ffmpeg_dem_AAC_fuzzer-5096222622875648
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavformat/id3v2.c

index 97f6cc8a68c96c7fac41d5000cf16f7891d37d51..df11b5450cbd4f96468cdfc7acdb89c7ae70536a 100644 (file)
@@ -605,7 +605,10 @@ static void read_apic(AVFormatContext *s, AVIOContext *pb, int taglen,
 
     /* mimetype */
     if (isv34) {
-        taglen -= avio_get_str(pb, taglen, mimetype, sizeof(mimetype));
+        int ret = avio_get_str(pb, taglen, mimetype, sizeof(mimetype));
+        if (ret < 0 || ret >= taglen)
+            goto fail;
+        taglen -= ret;
     } else {
         if (avio_read(pb, mimetype, 3) < 0)
             goto fail;