aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michael@niedermayer.cc>2022-07-21 00:20:41 +0200
committerMichael Niedermayer <michael@niedermayer.cc>2022-07-21 08:54:22 +0200
commitf7d510b33ff33d2f5cb096017ee1c00f624cc138 (patch)
treed84dc0ee67dd30efcca76f04ee0ae7ff538d975a
parent15785e044ee1265464bb4f3ed727e2a8074f97b4 (diff)
downloadffmpeg-f7d510b33ff33d2f5cb096017ee1c00f624cc138.tar.gz
avcodec/ffv1dec: Fix AC_GOLOMB_RICE min size check
Found-by: mkver Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-rw-r--r--libavcodec/ffv1dec.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/libavcodec/ffv1dec.c b/libavcodec/ffv1dec.c
index d71584505d..4fe1738dea 100644
--- a/libavcodec/ffv1dec.c
+++ b/libavcodec/ffv1dec.c
@@ -884,9 +884,13 @@ static int decode_frame(AVCodecContext *avctx, AVFrame *rframe,
return AVERROR_INVALIDDATA;
} else {
int w = avctx->width;
- for (int i = 0; w > (1<<ff_log2_run[i]); i++)
+ int s = 1 + w / (1<<23);
+
+ w /= s;
+
+ for (i = 0; w > (1<<ff_log2_run[i]); i++)
w -= ff_log2_run[i];
- if (buf_size < (avctx->height + i + 6)/ 8)
+ if (buf_size < (avctx->height + i + 6) / 8 * s)
return AVERROR_INVALIDDATA;
}