From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id C468C4FBDC for ; Sat, 28 Jun 2025 07:08:55 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 3892C68E2FC; Sat, 28 Jun 2025 10:08:51 +0300 (EEST) Received: from mail-pg1-f194.google.com (mail-pg1-f194.google.com [209.85.215.194]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id D157E68E232 for ; Sat, 28 Jun 2025 10:08:44 +0300 (EEST) Received: by mail-pg1-f194.google.com with SMTP id 41be03b00d2f7-b31e0ead80eso2859807a12.0 for ; Sat, 28 Jun 2025 00:08:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751094522; x=1751699322; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=meXEUwO1smGS0h7ErSCb1s5i9G8y3B0W0UTazhuwkzA=; b=M1vOPVn3hgTjGZdRwDqb9IQO6efIlfSlKVMziJ6JgNgP/SGeNNVPESvUkvoYnsvgA7 ElUXvDYHpJA289QBGY0k5lft2fjo5hojlT8srU5sui7Xj08wNFGjCz6bOM0Rm5nK9x9u iP/mCiOW1/XTWBvAqPtHvrRIijxOgF/XOjV9EfuqFqUlOlN3TrEmJTpyxkz4rcuPv1h1 IzmYjarZ9ABhFzg4ohP10c43eud8TPS3tuJNy+KjyDyFjJzA/A4WWEjjIe/boU8WyTI1 oIc6EDlturZ67dUX6LNMNUKpSMicDhkdzdNTs1RbyQIUYioYM5k9plC1IcTQlsbQpz7c zzNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751094522; x=1751699322; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=meXEUwO1smGS0h7ErSCb1s5i9G8y3B0W0UTazhuwkzA=; b=oWFNFNPuVxlPqa+CIJSmmbxe31tejfakM4xuKkcx90G8LnrlCRwP4cY3Doj0XU+Ipv GrbaikBlzvPNnuJZz+IQA1dkWC4rEp03KFFGtOsWSVYenIEeG0K4X6BQgHtbzsq84gKA /4gOLKTumEk+oTQzUAkZiYn5QTqKgNwH1BvzW5hVhKDUAijchW+8wt9vTDhDe/viO2cx qNxhighwpibvHr5NpaA0Q7bsD5C3q1DUeu2PpNNkg2ESloe0DKdDZeHxF4nUxR6HNNqR bFjtHDIdfojYKF6NqmMqYM+Gh2TqYDQ7pc9wxgN+i2s5MG5sCNFdN9qmyWqVAhGPV4KB tBtg== X-Gm-Message-State: AOJu0Yxvx4oCeQumbYvnUPmb0IVaaCZHecjEy8T5xTBdlEcbWXomxo3G DZNoiDyZmf0AKKy6YEl8N0XB+RSuB4ewfZOWbhGo0uFX5kvpAYFW2ncAm7sQU76EQ9FAHA== X-Gm-Gg: ASbGncv++Cl7QLfrwD2f+uSDsd5duuVXbmxGo/vcKRXAb3SDx5wYtZj8c0x2+aXPOTU AvcbU+ENcAS+Ay94cg5Ndftl64Otcvx2Pv4fzKl0lYIlojphzTeuQWpJNMmJg/Ip+QJmYPpKtrm 4fFBmcMHsxZJWhKC9GUxrtofS6gZUJSsnS2PvRgMkAeeErEYcCFrum6g5fICh7I1sH1f30T80AM AwJH25HQQj2JJ/hKSwLa9oJObzG8gHrOo9WShvtleyrvcwrjOj1+YLyFSyPQ2beihC3NG5TZ/i0 FnIsGR6x0usAUqxHLg0nLatQEp4Q97cg6S4Gs/YXFgLkzF4qHN4RIplLIbN0mdhEtik4gvFtr9u dqMc= X-Google-Smtp-Source: AGHT+IEbBG2qfuud4WC4mib6cCX8A7g+BJs0cuPmg33kTOj09+RKs34WLIK/tcNZ7UJYa54SE+Eq9g== X-Received: by 2002:a17:90b:278e:b0:311:f99e:7f4e with SMTP id 98e67ed59e1d1-318c92cfa2amr10253442a91.16.1751094522455; Sat, 28 Jun 2025 00:08:42 -0700 (PDT) Received: from r760 ([188.253.126.210]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-315f51d7913sm8081488a91.0.2025.06.28.00.08.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 28 Jun 2025 00:08:42 -0700 (PDT) From: Lidong Yan X-Google-Original-From: Lidong Yan <502024330056@smail.nju.edu.cn> To: ffmpeg-devel@ffmpeg.org Date: Sat, 28 Jun 2025 15:08:36 +0800 Message-ID: <20250628070836.1434761-1-502024330056@smail.nju.edu.cn> X-Mailer: git-send-email 2.50.0.108.g6ae0c543ae MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3] avfilter/asrc_sinc: fix leak in config_input() X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Lidong Yan <502024330056@smail.nju.edu.cn> Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: In config_input(), fir_to_phase() allocates memory in h[longer], which would leak if av_calloc() to s->coeffs failed. lpf() allocates memory in h[0] and h[1], which would leak if fir_to_phase() failed. To fix this leak, add av_free(h[longer]) in as cleanup code, and replace return AVERROR* with goto cleanup to prevent from leaks. Signed-off-by: Lidong Yan <502024330056@smail.nju.edu.cn> -----BEGIN PGP PUBLIC KEY BLOCK----- mDMEaEpkmRYJKwYBBAHaRw8BAQdAGwGqH/Dwod+i6kR0/Rhn5GanJ7wK8mM9tWP/ W2qu8Ti0HTUwMjAyNDMzMDA1NkBzbWFpbC5uanUuZWR1LmNuiJkEExYKAEEWIQQC zskBcOehk1y8GoKZR31bPD+6owUCaEpkmQIbAwUJBaOagAULCQgHAgIiAgYVCgkI CwIEFgIDAQIeBwIXgAAKCRCZR31bPD+6o8wHAQCLomsA4XfTd8IdG983gGULUJe/ 0432buy4nX7AsAc87QEA+/QIsWTR6XLJaLa1sLSQCsZkb86U3c17JzG9oivL8gW4 OARoSmSZEgorBgEEAZdVAQUBAQdAfYrEAWd+6bOXkKvHpFmMvKzxAtlhm6ZQKdAq +MlJ7wQDAQgHiHgEGBYKACAWIQQCzskBcOehk1y8GoKZR31bPD+6owUCaEpkmQIb DAAKCRCZR31bPD+6ozWxAQC9OFisWrP/hHXUfj8AnC39r5pf5fEBz7lHvFgWNk2b XwD7Bl6kvIIW7ReqtgXvcl7u78vEo+e9YeTGTlmAogjpeQk= =rP+W -----END PGP PUBLIC KEY BLOCK----- --- libavfilter/asrc_sinc.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/libavfilter/asrc_sinc.c b/libavfilter/asrc_sinc.c index 6ff3303316..63cb04d444 100644 --- a/libavfilter/asrc_sinc.c +++ b/libavfilter/asrc_sinc.c @@ -329,7 +329,7 @@ static int config_output(AVFilterLink *outlink) SincContext *s = ctx->priv; float Fn = s->sample_rate * .5f; float *h[2]; - int i, n, post_peak, longer; + int i, n, post_peak, longer, ret; outlink->sample_rate = s->sample_rate; s->pts = 0; @@ -360,9 +360,9 @@ static int config_output(AVFilterLink *outlink) } if (s->phase != 50.f) { - int ret = fir_to_phase(s, &h[longer], &n, &post_peak, s->phase); + ret = fir_to_phase(s, &h[longer], &n, &post_peak, s->phase); if (ret < 0) - return ret; + goto cleanup; } else { post_peak = n >> 1; } @@ -370,16 +370,20 @@ static int config_output(AVFilterLink *outlink) s->n = 1 << (av_log2(n) + 1); s->rdft_len = 1 << av_log2(n); s->coeffs = av_calloc(s->n, sizeof(*s->coeffs)); - if (!s->coeffs) - return AVERROR(ENOMEM); + if (!s->coeffs) { + ret = AVERROR(ENOMEM); + goto cleanup; + } for (i = 0; i < n; i++) s->coeffs[i] = h[longer][i]; - av_free(h[longer]); av_tx_uninit(&s->tx); av_tx_uninit(&s->itx); + ret = 0; +cleanup: + av_free(h[longer]); return 0; } -- 2.50.0.108.g6ae0c543ae _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".