[FFmpeg-cvslog] lavfi/vf_zscale: fix tmp buffer ptr alignment for zimg_filter_graph_process
Pavel Koshevoy
git at videolan.org
Sun Nov 10 00:35:54 EET 2024
ffmpeg | branch: master | Pavel Koshevoy <pkoshevoy at gmail.com> | Sat Nov 9 10:05:16 2024 -0700| [7b302f4db7d335f4dd42cffb461b2b0db6c00749] | committer: James Almer
lavfi/vf_zscale: fix tmp buffer ptr alignment for zimg_filter_graph_process
Signed-off-by: James Almer <jamrial at gmail.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=7b302f4db7d335f4dd42cffb461b2b0db6c00749
---
libavfilter/vf_zscale.c | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/libavfilter/vf_zscale.c b/libavfilter/vf_zscale.c
index 4ba059064b..219d178b16 100644
--- a/libavfilter/vf_zscale.c
+++ b/libavfilter/vf_zscale.c
@@ -628,9 +628,12 @@ static int graphs_build(AVFrame *in, AVFrame *out, const AVPixFmtDescriptor *des
if (ret)
return print_zimg_error(ctx);
+ if (size > (SIZE_MAX - ZIMG_ALIGNMENT))
+ return AVERROR(ENOMEM);
+
if (s->tmp[job_nr])
av_freep(&s->tmp[job_nr]);
- s->tmp[job_nr] = av_calloc(size, 1);
+ s->tmp[job_nr] = av_mallocz(size + ZIMG_ALIGNMENT);
if (!s->tmp[job_nr])
return AVERROR(ENOMEM);
@@ -750,7 +753,9 @@ static int filter_slice(AVFilterContext *ctx, void *data, int job_nr, int n_jobs
}
if (!s->graph[job_nr])
return AVERROR(EINVAL);
- ret = zimg_filter_graph_process(s->graph[job_nr], &src_buf, &dst_buf, s->tmp[job_nr], 0, 0, 0, 0);
+ ret = zimg_filter_graph_process(s->graph[job_nr], &src_buf, &dst_buf,
+ (uint8_t *)FFALIGN((uintptr_t)s->tmp[job_nr], ZIMG_ALIGNMENT),
+ 0, 0, 0, 0);
if (ret)
return print_zimg_error(ctx);
@@ -765,7 +770,9 @@ static int filter_slice(AVFilterContext *ctx, void *data, int job_nr, int n_jobs
if (!s->alpha_graph[job_nr])
return AVERROR(EINVAL);
- ret = zimg_filter_graph_process(s->alpha_graph[job_nr], &src_buf, &dst_buf, s->tmp[job_nr], 0, 0, 0, 0);
+ ret = zimg_filter_graph_process(s->alpha_graph[job_nr], &src_buf, &dst_buf,
+ (uint8_t *)FFALIGN((uintptr_t)s->tmp[job_nr], ZIMG_ALIGNMENT),
+ 0, 0, 0, 0);
if (ret)
return print_zimg_error(ctx);
}
More information about the ffmpeg-cvslog
mailing list