aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2024-05-24 09:48:12 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2024-05-31 14:18:33 +0200
commit21bfc62642cb16fc3d867999db341d3c67e03404 (patch)
tree25aa68435b72eb0b0402cfbbf4e4b82068f9c857
parent37cc648fbd9e6d3dc61e8ac487774d330131c70f (diff)
downloadffmpeg-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.c7
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;