From patchwork Mon Jun 15 01:40:50 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 20387 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 25F3644A9BF for ; Mon, 15 Jun 2020 04:41:05 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 011F568B670; Mon, 15 Jun 2020 04:41:05 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f66.google.com (mail-wm1-f66.google.com [209.85.128.66]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 05D1D68B213 for ; Mon, 15 Jun 2020 04:40:58 +0300 (EEST) Received: by mail-wm1-f66.google.com with SMTP id l26so12999892wme.3 for ; Sun, 14 Jun 2020 18:40:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=XCKmt1G22wDittE5J1KsqomKzgjuBquaeecOH5GISJ0=; b=acM6u73OrTC44eF9zwlq+4Qw3fY0rHRqSvg41MhX9pu8LzenEhf//IE0Dz7xlqUMP7 K7Vus47wAQ9f1WY/zJze570/EyaU78iGadF+Ma5Y/1M284auWUgBkYyFHvkeBFhhmeVQ RfzMn7plDTtwPvqz9DH09Ax+gSBGDlO7ovcBnyBsSNT+blr+Iw9hlC41Z+46JNyQsR88 0jrGTEawaS57d7rHTSqtRg+t39rY/qBFeP5Qv5DMrpKcVQE5TJtQx7fLavYi5gQ9FbCs OrdVbNuYGHV2lawJgsmukevdYk4R4VNryHsFwzgY5QYsNWi4Fm9ALuYlz3OfeubvvthG LGyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=XCKmt1G22wDittE5J1KsqomKzgjuBquaeecOH5GISJ0=; b=Gops6KC6c/PoyiuvPWUbVvmqPmJT9V/9wyH1fXxUkQdsC1J4/p+AIcToPHsD9+tgyc 4+YL/GNVsAUbUQQSEWs1B7fvRyw7GTRicnz9Ohv8fH7g6RTuF9WLnXhnu3rlvLq1zAIj XhIRrTl+HgjUCxzkU+OEqlQYsHKARdqT6M5wTv78ll2VZuK+gRHoaDY+NpweO8puBcHu BeednH4HNF16qCKbUebJPCJTI++Ued+/7gMc9Sjsc9WkZGkU6ZabQQdw0G2bsiW3JA6j MCuOLF2BgYfssH4XdYq1Vty1clwRIxo5GS38O8Tg8xGSxO0mDApJiZRPFUdVNgkXgIDN 5RPw== X-Gm-Message-State: AOAM5305d795PbQD+0hpHlERMnOBb90p0jW9ExseoDBmVyisKWYjxGUt JWKyuyO7IxNVvkl0AqeoFRQlCoHE X-Google-Smtp-Source: ABdhPJypryzB3FLLo5DXpTbz1Sy89n/IZh0cccTg2twLMYM3+pL2H82A7sM8QolostwxHlX8DZ/yJw== X-Received: by 2002:a1c:e0c3:: with SMTP id x186mr10289450wmg.17.1592185257213; Sun, 14 Jun 2020 18:40:57 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1ab57.dynamic.kabel-deutschland.de. [188.193.171.87]) by smtp.gmail.com with ESMTPSA id x66sm20776903wmb.40.2020.06.14.18.40.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Jun 2020 18:40:56 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 15 Jun 2020 03:40:50 +0200 Message-Id: <20200615014050.14473-1-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avcodec/iirfilter: Fix memleak X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Commit 17e88bf0df21906633a7d36d9f2aeeeb5b6d3267 created a memleak by removing a call to ff_iir_filter_free_coeffsp on error; this has been found by Coverity (ID 1464159). This commit fixes the memleak by readding the call to ff_iir_filter_free_coeffsp. Notice that this is not a simple revert, because several macros that were used before 17e88bf0df21906633a7d36d9f2aeeeb5b6d3267 were replaced in commit 44863b2c2d5a31d82aafa71cdbd180d6bfbed5b4 and completely removed in 2658680df4fc606522e5f65899afb9a98b47d287. Signed-off-by: Andreas Rheinhardt --- The commits mentioned above are not in 4.3. libavcodec/iirfilter.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libavcodec/iirfilter.c b/libavcodec/iirfilter.c index 9f76bce8b8..cd5bbc943a 100644 --- a/libavcodec/iirfilter.c +++ b/libavcodec/iirfilter.c @@ -174,7 +174,7 @@ av_cold struct FFIIRFilterCoeffs *ff_iir_filter_init_coeffs(void *avc, if (!(c = av_mallocz(sizeof(*c))) || !(c->cx = av_malloc (sizeof(c->cx[0]) * ((order >> 1) + 1))) || !(c->cy = av_malloc (sizeof(c->cy[0]) * order))) - return NULL; + goto free; c->order = order; switch (filt_type) { @@ -188,11 +188,13 @@ av_cold struct FFIIRFilterCoeffs *ff_iir_filter_init_coeffs(void *avc, break; default: av_log(avc, AV_LOG_ERROR, "filter type is not currently implemented\n"); - return NULL; + goto free; } if (!ret) return c; +free: + ff_iir_filter_free_coeffsp(&c); return NULL; }