avcodec/mjpegdec: Check escape sequence validity
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 4 Feb 2015 19:13:18 +0000 (20:13 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 4 Feb 2015 20:27:28 +0000 (21:27 +0100)
Fixes assertion failure
Fixes: asan_heap-oob_1c1a4ea_1242_cov_2274415971_TESTcmyk.jpg

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/mjpegdec.c

index f12210a..37369c2 100644 (file)
@@ -1779,6 +1779,10 @@ int ff_mjpeg_find_marker(MJpegDecodeContext *s,
             put_bits(&pb, 8, x);
             if (x == 0xFF) {
                 x = src[b++];
+                if (x & 0x80) {
+                    av_log(s->avctx, AV_LOG_WARNING, "Invalid escape sequence\n");
+                    x &= 0x7f;
+                }
                 put_bits(&pb, 7, x);
                 bit_count--;
             }