summaryrefslogtreecommitdiff
path: root/libavfilter
diff options
context:
space:
mode:
authorPaul B Mahol <onemda@gmail.com>2018-11-20 23:18:47 +0100
committerPaul B Mahol <onemda@gmail.com>2018-11-20 23:18:47 +0100
commit57815cfad5c5d6beb6f3fc0ae86b050a970d3a08 (patch)
tree9bbfc5be892934d17fab44012f64d6c5b521ae4d /libavfilter
parente3a96309826dd0ea33db0300f7c75414fdbea0a4 (diff)
avfilter/vf_overlay: fix crash with negative y
Diffstat (limited to 'libavfilter')
-rw-r--r--libavfilter/vf_overlay.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/libavfilter/vf_overlay.c b/libavfilter/vf_overlay.c
index ba25893739..a12e7a793f 100644
--- a/libavfilter/vf_overlay.c
+++ b/libavfilter/vf_overlay.c
@@ -473,12 +473,12 @@ static av_always_inline void blend_plane(AVFilterContext *ctx,
slice_start = (jmax * jobnr) / nb_jobs;
slice_end = (jmax * (jobnr+1)) / nb_jobs;
- sp = src->data[i] + slice_start * src->linesize[i];
+ sp = src->data[i] + (j + slice_start) * src->linesize[i];
dp = dst->data[dst_plane]
- + (yp + slice_start) * dst->linesize[dst_plane]
+ + (yp + j + slice_start) * dst->linesize[dst_plane]
+ dst_offset;
- ap = src->data[3] + (slice_start << vsub) * src->linesize[3];
- dap = dst->data[3] + ((yp + slice_start) << vsub) * dst->linesize[3];
+ ap = src->data[3] + (j + slice_start << vsub) * src->linesize[3];
+ dap = dst->data[3] + ((yp + j + slice_start) << vsub) * dst->linesize[3];
for (j = j + slice_start; j < slice_end; j++) {
k = FFMAX(-xp, 0);