From 9a22c6508a413f62080801c2d08b24d064719fcb Mon Sep 17 00:00:00 2001 From: Paul B Mahol Date: Wed, 13 Apr 2022 10:20:59 +0200 Subject: avfilter/vf_deblock: fix posible overreads --- libavfilter/vf_deblock.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'libavfilter/vf_deblock.c') diff --git a/libavfilter/vf_deblock.c b/libavfilter/vf_deblock.c index b7c6a03d4a..770fce0eab 100644 --- a/libavfilter/vf_deblock.c +++ b/libavfilter/vf_deblock.c @@ -337,7 +337,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) s->deblockv(dst + x * s->bpc, out->linesize[plane], FFMIN(block, height), s->ath, s->bth, s->gth, s->dth, s->max); - for (y = block; y < height; y += block) { + for (y = block; y < height - block; y += block) { dst += out->linesize[plane] * block; s->deblockh(dst, out->linesize[plane], @@ -353,6 +353,12 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) s->ath, s->bth, s->gth, s->dth, s->max); } } + + dst += out->linesize[plane] * block; + for (x = block; x < width; x += block) + s->deblockv(dst + x * s->bpc, out->linesize[plane], + FFMIN(block, height - y), s->ath, s->bth, s->gth, s->dth, s->max); + } if (in != out) -- cgit v1.2.3