Check unp_size for possible overflows too
authorKostya Shishkov <kostya.shishkov@gmail.com>
Fri, 14 Sep 2007 06:01:29 +0000 (06:01 +0000)
committerKostya Shishkov <kostya.shishkov@gmail.com>
Fri, 14 Sep 2007 06:01:29 +0000 (06:01 +0000)
Originally committed as revision 10490 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/smacker.c

index e185f4d..614f301 100644 (file)
@@ -590,7 +590,7 @@ static int smka_decode_frame(AVCodecContext *avctx, void *data, int *data_size,
     }
     stereo = get_bits1(&gb);
     bits = get_bits1(&gb);
-    if ((unp_size << !bits) > *data_size) {
+    if (unp_size & 0xC0000000 || (unp_size << !bits) > *data_size) {
         av_log(avctx, AV_LOG_ERROR, "Frame is too large to fit in buffer\n");
         return -1;
     }