[FFmpeg-cvslog] avfilter/vf_deblock: fix posible overreads
Paul B Mahol
git at videolan.org
Wed Apr 13 11:23:08 EEST 2022
ffmpeg | branch: master | Paul B Mahol <onemda at gmail.com> | Wed Apr 13 10:20:59 2022 +0200| [9a22c6508a413f62080801c2d08b24d064719fcb] | committer: Paul B Mahol
avfilter/vf_deblock: fix posible overreads
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9a22c6508a413f62080801c2d08b24d064719fcb
---
libavfilter/vf_deblock.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
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)
More information about the ffmpeg-cvslog
mailing list