diff options
author | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2024-05-24 09:48:12 +0200 |
---|---|---|
committer | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2024-05-31 14:18:33 +0200 |
commit | 21bfc62642cb16fc3d867999db341d3c67e03404 (patch) | |
tree | 25aa68435b72eb0b0402cfbbf4e4b82068f9c857 | |
parent | 37cc648fbd9e6d3dc61e8ac487774d330131c70f (diff) | |
download | ffmpeg-21bfc62642cb16fc3d867999db341d3c67e03404.tar.gz |
avfilter/af_aiir: Avoid unchecked allocation
W has not been checked at all; allocate it jointly with M
to fix this.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-rw-r--r-- | libavfilter/af_aiir.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/libavfilter/af_aiir.c b/libavfilter/af_aiir.c index 324fc367a3..7bd9e37e43 100644 --- a/libavfilter/af_aiir.c +++ b/libavfilter/af_aiir.c @@ -828,17 +828,17 @@ static int convert_serial2parallel(AVFilterContext *ctx, int channels) double *impulse = av_calloc(length, sizeof(*impulse)); double *y = av_calloc(length, sizeof(*y)); double *resp = av_calloc(length, sizeof(*resp)); - double *M = av_calloc((length - 1) * 2 * nb_biquads, sizeof(*M)); - double *W = av_calloc((length - 1) * 2 * nb_biquads, sizeof(*W)); + double *M = av_calloc((length - 1) * nb_biquads, 2 * 2 * sizeof(*M)); + double *W; if (!impulse || !y || !resp || !M) { av_free(impulse); av_free(y); av_free(resp); av_free(M); - av_free(W); return AVERROR(ENOMEM); } + W = M + (length - 1) * 2 * nb_biquads; impulse[0] = 1.; @@ -877,7 +877,6 @@ static int convert_serial2parallel(AVFilterContext *ctx, int channels) av_free(y); av_free(resp); av_free(M); - av_free(W); } return 0; |