lavc/mjpegdec: Fix decoding images with Adobe_CM tag.
authorCarl Eugen Hoyos <cehoyos@ag.or.at>
Thu, 25 Feb 2016 12:26:13 +0000 (13:26 +0100)
committerCarl Eugen Hoyos <cehoyos@ag.or.at>
Thu, 25 Feb 2016 12:26:13 +0000 (13:26 +0100)
Fixes ticket #5267.

libavcodec/mjpegdec.c

index 69c9cf3..113022f 100644 (file)
@@ -1677,7 +1677,11 @@ static int mjpeg_decode_app(MJpegDecodeContext *s)
         goto out;
     }
 
-    if (id == AV_RB32("Adob") && (get_bits(&s->gb, 8) == 'e')) {
+    if (   id == AV_RB32("Adob")
+        && len >= 7
+        && show_bits(&s->gb, 8) == 'e'
+        && show_bits_long(&s->gb, 32) != AV_RB32("e_CM")) {
+        skip_bits(&s->gb,  8); /* 'e' */
         skip_bits(&s->gb, 16); /* version */
         skip_bits(&s->gb, 16); /* flags0 */
         skip_bits(&s->gb, 16); /* flags1 */