diff options
author | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2021-10-06 15:20:30 +0200 |
---|---|---|
committer | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2021-10-07 12:49:29 +0200 |
commit | cd1aaec760273bd7673b27609f114599e2d9b5a9 (patch) | |
tree | cd002a9bf71b397f711d9e2bf3bc629a829c28eb /libavfilter/vf_w3fdif.c | |
parent | b6aeee2d8bedcd8cfc6aa91cc124c904a78adb1e (diff) | |
download | ffmpeg-cd1aaec760273bd7673b27609f114599e2d9b5a9.tar.gz |
avfilter/vf_w3fdif: Fix segfault on allocation error
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Diffstat (limited to 'libavfilter/vf_w3fdif.c')
-rw-r--r-- | libavfilter/vf_w3fdif.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/libavfilter/vf_w3fdif.c b/libavfilter/vf_w3fdif.c index ea304164b6..c2ea76dfa3 100644 --- a/libavfilter/vf_w3fdif.c +++ b/libavfilter/vf_w3fdif.c @@ -275,7 +275,7 @@ static int config_input(AVFilterLink *inlink) AVFilterContext *ctx = inlink->dst; W3FDIFContext *s = ctx->priv; const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(inlink->format); - int ret, i, depth; + int ret, i, depth, nb_threads; if ((ret = av_image_fill_linesizes(s->linesize, inlink->format, inlink->w)) < 0) return ret; @@ -289,10 +289,11 @@ static int config_input(AVFilterLink *inlink) } s->nb_planes = av_pix_fmt_count_planes(inlink->format); - s->nb_threads = ff_filter_get_nb_threads(ctx); - s->work_line = av_calloc(s->nb_threads, sizeof(*s->work_line)); + nb_threads = ff_filter_get_nb_threads(ctx); + s->work_line = av_calloc(nb_threads, sizeof(*s->work_line)); if (!s->work_line) return AVERROR(ENOMEM); + s->nb_threads = nb_threads; for (i = 0; i < s->nb_threads; i++) { s->work_line[i] = av_calloc(FFALIGN(s->linesize[0], 32), sizeof(*s->work_line[0])); |