go2meeting: disallow tile dimensions that are not multiple of 16
authorKostya Shishkov <kostya.shishkov@gmail.com>
Fri, 29 Nov 2013 08:15:00 +0000 (09:15 +0100)
committerAnton Khirnov <anton@khirnov.net>
Fri, 29 Nov 2013 16:37:59 +0000 (17:37 +0100)
Original decoder seems to always use 176x128 tiles anyway and this helps
avoiding lots of issues with odd tile sizes in fuzzed files.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
libavcodec/g2meet.c

index 0b4a8b7..ad27c57 100644 (file)
@@ -712,7 +712,8 @@ static int g2m_decode_frame(AVCodecContext *avctx, void *data,
             }
             c->tile_width  = bytestream2_get_be32(&bc);
             c->tile_height = bytestream2_get_be32(&bc);
-            if (!c->tile_width || !c->tile_height) {
+            if (!c->tile_width || !c->tile_height ||
+                ((c->tile_width | c->tile_height) & 0xF)) {
                 av_log(avctx, AV_LOG_ERROR,
                        "Invalid tile dimensions %dx%d\n",
                        c->tile_width, c->tile_height);