summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKostya Shishkov <kostya.shishkov@gmail.com>2013-11-29 09:15:00 +0100
committerAnton Khirnov <anton@khirnov.net>2013-11-29 17:37:59 +0100
commit01f6df01b6fdc2d71b82370374cde4bf102928c7 (patch)
tree624656c80fe3ff82212c52c9cb0643a5868c5ca6
parente026ee0446de27fc38e33e98704fada012fdc763 (diff)
go2meeting: disallow tile dimensions that are not multiple of 16
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>
-rw-r--r--libavcodec/g2meet.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/libavcodec/g2meet.c b/libavcodec/g2meet.c
index 0b4a8b718f..ad27c573f9 100644
--- a/libavcodec/g2meet.c
+++ b/libavcodec/g2meet.c
@@ -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);