[FFmpeg-cvslog] avfilter/vf_bitplanenoise: fix overreads

Paul B Mahol git at videolan.org
Wed May 4 21:19:06 EEST 2022


ffmpeg | branch: release/4.2 | Paul B Mahol <onemda at gmail.com> | Fri Oct 11 12:42:13 2019 +0200| [72bc9bd8ef493bd43db2f1dd92ddb1cb0b1f00b0] | committer: Michael Niedermayer

avfilter/vf_bitplanenoise: fix overreads

Fixes #8244

(cherry picked from commit 0b567238741854b41f84f7457686b044eadfe29c)
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=72bc9bd8ef493bd43db2f1dd92ddb1cb0b1f00b0
---

 libavfilter/vf_bitplanenoise.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavfilter/vf_bitplanenoise.c b/libavfilter/vf_bitplanenoise.c
index 4ec3a22572..94aa24abec 100644
--- a/libavfilter/vf_bitplanenoise.c
+++ b/libavfilter/vf_bitplanenoise.c
@@ -122,7 +122,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in)
 
     if (s->depth <= 8) {
         for (plane = 0; plane < s->nb_planes; plane++) {
-            const int linesize = in->linesize[plane];
+            const int linesize = s->planeheight[plane] > 1 ? in->linesize[plane] : 0;
             const int dlinesize = out->linesize[plane];
             uint8_t *val = in->data[plane];
             uint8_t *dst = s->filter ? out->data[plane]: NULL;
@@ -151,7 +151,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in)
         }
     } else {
         for (plane = 0; plane < s->nb_planes; plane++) {
-            const int linesize = in->linesize[plane] / 2;
+            const int linesize = s->planeheight[plane] > 1 ? in->linesize[plane] / 2 : 0;
             const int dlinesize = out->linesize[plane] / 2;
             uint16_t *val = (uint16_t *)in->data[plane];
             uint16_t *dst = s->filter ? (uint16_t *)out->data[plane] : NULL;



More information about the ffmpeg-cvslog mailing list