X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fsmc.c;h=3cb48347378dabe386cd06c1868367ed3b3240ff;hb=25c0ede93b9cb3542e631d6e449d50aa3fb1c2e8;hp=79f9a757a0502e63768b287273eb2af7f5605720;hpb=7386b4ff39506b7a34b3689cc4b05993ed9b4a4f;p=ffmpeg diff --git a/libavcodec/smc.c b/libavcodec/smc.c index 79f9a757a05..3cb48347378 100644 --- a/libavcodec/smc.c +++ b/libavcodec/smc.c @@ -438,6 +438,10 @@ static int smc_decode_frame(AVCodecContext *avctx, int pal_size; const uint8_t *pal = av_packet_get_side_data(avpkt, AV_PKT_DATA_PALETTE, &pal_size); int ret; + int total_blocks = ((s->avctx->width + 3) / 4) * ((s->avctx->height + 3) / 4); + + if (total_blocks / 1024 > avpkt->size) + return AVERROR_INVALIDDATA; bytestream2_init(&s->gb, buf, buf_size);