From 9dc3b1d7f2a3cb2a072b62370ea192b4ebad9a36 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Tue, 26 Mar 2019 17:16:25 +0100 Subject: mg2d: do not leak the diff_coeffs interpolator --- mg2d.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/mg2d.c b/mg2d.c index 0ae651b..a1d6950 100644 --- a/mg2d.c +++ b/mg2d.c @@ -250,7 +250,7 @@ static int restrict_diff_coeffs(MG2DContext *ctx, enum GridTransferOperator op, { MG2DInternal *priv = ctx->priv; GridTransferContext *tc; - int ret; + int ret = 0; tc = mg2di_gt_alloc(op); if (!tc) @@ -271,15 +271,18 @@ static int restrict_diff_coeffs(MG2DContext *ctx, enum GridTransferOperator op, ret = mg2di_gt_init(tc); if (ret < 0) - return ret; + goto finish; for (int i = 0; i < MG2D_DIFF_COEFF_NB; i++) { ret = mg2di_gt_transfer(tc, dst->diff_coeffs[i], src->diff_coeffs[i]); if (ret < 0) - return ret; + goto finish; } - return 0; +finish: + mg2di_gt_free(&tc); + + return ret; } static double findmax(double *arr, size_t size[2], ptrdiff_t stride) -- cgit v1.2.3