]> git.sesse.net Git - ffmpeg/commitdiff
mjpegb: Detect changing nb of planes in interlaced video.
authorMichael Niedermayer <michaelni@gmx.at>
Sat, 10 Mar 2012 21:02:46 +0000 (22:02 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 10 Mar 2012 22:12:42 +0000 (23:12 +0100)
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/mjpegdec.c

index 499ed4ca0e9930548a42db96beef3f6dd07d56d4..19d44e4bd714452972fb7784595b24180be1434a 100644 (file)
@@ -251,6 +251,12 @@ int ff_mjpeg_decode_sof(MJpegDecodeContext *s)
     if (nb_components <= 0 ||
         nb_components > MAX_COMPONENTS)
         return -1;
+    if (s->interlaced && (s->bottom_field == !s->interlace_polarity)) {
+        if (nb_components != s->nb_components) {
+            av_log(s->avctx, AV_LOG_ERROR, "nb_components changing in interlaced picture\n");
+            return AVERROR_INVALIDDATA;
+        }
+    }
     if (s->ls && !(s->bits <= 8 || nb_components == 1)) {
         av_log(s->avctx, AV_LOG_ERROR,
                "only <= 8 bits/component or 16-bit gray accepted for JPEG-LS\n");