avcodec/mpeg4videodec: Check mb_num also against 0
authorMichael Niedermayer <michael@niedermayer.cc>
Sun, 28 Jan 2018 01:29:00 +0000 (02:29 +0100)
committerMichael Niedermayer <michael@niedermayer.cc>
Wed, 31 Jan 2018 22:47:15 +0000 (23:47 +0100)
The spec implies that 0 is invalid in addition to the existing checks

Found-by: <kierank>
Reviewed-by: Kieran Kunhya <kieran618@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 05f4703a168a336363750e32bcfdd6f303fbdbc3)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavcodec/mpeg4videodec.c

index 7185844..0d33c02 100644 (file)
@@ -458,7 +458,7 @@ int ff_mpeg4_decode_video_packet_header(Mpeg4DecContext *ctx)
     }
 
     mb_num = get_bits(&s->gb, mb_num_bits);
-    if (mb_num >= s->mb_num) {
+    if (mb_num >= s->mb_num || !mb_num) {
         av_log(s->avctx, AV_LOG_ERROR,
                "illegal mb_num in video packet (%d %d) \n", mb_num, s->mb_num);
         return -1;