Received: by 2002:a05:7412:2a91:b0:fc:a2b0:25d7 with SMTP id u17csp448268rdh; Wed, 14 Feb 2024 01:28:06 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCVDGEqtmr/dAWLD1dKv3qWW8bH4mdWvfgyaSJ1r/WcJ7esV27Ts9FQ0tXSHtY3F6cP5KpU4qTopkI7gAEmsMZgCOBcPMcN9amsObHVrvw== X-Google-Smtp-Source: AGHT+IGMxJvCLkG8EBolbEH6fTZHIyEtDSR85UB+rxNfIs7uNyLmrFVCX4ozWzmhpoTEuSfNpKsy X-Received: by 2002:a17:903:32c6:b0:1db:5213:222 with SMTP id i6-20020a17090332c600b001db52130222mr2565129plr.5.1707902886221; Wed, 14 Feb 2024 01:28:06 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1707902886; cv=pass; d=google.com; s=arc-20160816; b=GXv6Dl/HD7RCFODle2iE1cPSBftzawlmgSw2SnWLBDF5i96B++QN+g2zHOb+VzfegN vEWLyEAHN6q5mm5eZkGn9ckybn+Nl2AlAZiJPcO1qdQoQxIuWAxkdaOJ6nctxU4VZVfx Z/glwLEA4jfYp/lYA1ZK1L4yTR3qiRYQhZPN4N19hhEclG+GVbuX9Rp63eL8OZ7iOu4b VglY3i55zp9Si18rz0B3fpLp/wPC8yDxoGvyFDLpDe5KTAvzqOrUxGsnQJO4xC4Dvh1A 9ABcWLyQGaNAA28mNtc1Hw1mQ1r3A0gP+h6OetV2hQ6YOK6qC2y3fepA1DzBRcat1gDh Il8Q== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:date:message-id; bh=2e7AIp0ChBQfRTk3JbUMi+jcTPBdJATbbv+JJAPR43I=; fh=tZYxHUYBTGukfYe1U87c4I5j+g4+/YkGkT4Ir2Lf/dI=; b=U/gzDltBXW0RgbH77YhtwaesebiTS0ShaWkN5AiEiT78IDghoXqMzQBg+44CHEoqyG tT/i/wcnJ2glBptmiSIZuSxoDjW/dvLbnEFSf/1hIIk/KyoBP0RO+96pYqjE8J6ywVKw Sz8neDP7Fqxjje6S+TzLAGk4TxN7xjSL6LrNdafYkonuotIAaj4JXwJa3TWt2kiqpAhN 8zhcai20g1c7JdSX3Ukes0TnRSWOX0M7g6OaHOCzgEOtzEHNG81vjqi0uwIj+3gtBZNB EfYVMo4o66WbOZJCr6xz3pIuAPxDD74wdkXfMNMzIeYFskW/dO3z4n+sCgx6RWIeH1YR BDgQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; arc=pass (i=1); spf=pass (google.com: domain of linux-kernel+bounces-64957-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-64957-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=xs4all.nl X-Forwarded-Encrypted: i=2; AJvYcCUKnwt7doe7pWZFCgAs96/09oH2cChUYQmGoAOHbowA2YGJlGxO05RYF1NqZlyFLj+eTSeQEPvverO3ipLbm6lUDkUudm/6tzx4jR/CMQ== Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id q9-20020a170902eb8900b001db51eddaa4si1313474plg.227.2024.02.14.01.28.06 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 14 Feb 2024 01:28:06 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-64957-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; arc=pass (i=1); spf=pass (google.com: domain of linux-kernel+bounces-64957-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-64957-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=xs4all.nl Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id E0F77286132 for ; Wed, 14 Feb 2024 09:28:05 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 940AB12B99; Wed, 14 Feb 2024 09:27:55 +0000 (UTC) Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 17DA7125CF; Wed, 14 Feb 2024 09:27:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707902875; cv=none; b=W6Ydv8T6M9ATFAUkbbnTCY0QphLHDLEoUTl9twG+EPE9Z6/wbJNLBuiXK+KW0wRQTdoJ/YgAAokFumRuXGmJzFObctjRk+GEaDJGizNpczvRs/VUxkIJKXWKY/yVaY9mDX3GQ+HuIPCvg8Dqo8S9cN/Au//02WduRRIVHNCjANE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707902875; c=relaxed/simple; bh=sIaagt7mtaQOaGtU4zI5wV9vS7vA86dOsiUcFH+wHcA=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=FqmGoKe6A4rlOOW9SsSW7DAy5cAJSi+lttkxUjOfblIuSdatCaVShfUBDI7n/uIaUJTSWelVvXNDtzod5822YXmtG3ZW50hbKKJL3+k4EVLLrPXx3bF+9UDbAMnHsIZ4P/JF3ul6GlLR2aYidRt6KS1OajPuxteFrfb1w2jrCeI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 63A3FC433F1; Wed, 14 Feb 2024 09:27:53 +0000 (UTC) Message-ID: Date: Wed, 14 Feb 2024 10:27:51 +0100 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] media: ttpci: fix two memleaks in budget_av_attach Content-Language: en-US, nl To: Zhipeng Lu Cc: Mauro Carvalho Chehab , Yu Zhe , Jakub Kicinski , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org References: <20240206073719.3133481-1-alexious@zju.edu.cn> From: Hans Verkuil In-Reply-To: <20240206073719.3133481-1-alexious@zju.edu.cn> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 06/02/2024 08:37, Zhipeng Lu wrote: > When saa7146_register_device and saa7146_vv_init fails, budget_av_attach > should free the resources it allocates, like the error-handling of > ttpci_budget_init does. Besides, there are two fixme comment refers to > such deallocations. > > Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") > Signed-off-by: Zhipeng Lu > --- > drivers/media/pci/ttpci/budget-av.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/media/pci/ttpci/budget-av.c b/drivers/media/pci/ttpci/budget-av.c > index 230b104a7cdf..4f897f848581 100644 > --- a/drivers/media/pci/ttpci/budget-av.c > +++ b/drivers/media/pci/ttpci/budget-av.c > @@ -1463,7 +1463,8 @@ static int budget_av_attach(struct saa7146_dev *dev, struct saa7146_pci_extensio > budget_av->has_saa7113 = 1; > err = saa7146_vv_init(dev, &vv_data); > if (err != 0) { > - /* fixme: proper cleanup here */ > + ttpci_budget_deinit(&budget_av->budget); > + kfree(budget_av); > ERR("cannot init vv subsystem\n"); > return err; > } > @@ -1472,7 +1473,8 @@ static int budget_av_attach(struct saa7146_dev *dev, struct saa7146_pci_extensio > vv_data.vid_ops.vidioc_s_input = vidioc_s_input; > > if ((err = saa7146_register_device(&budget_av->vd, dev, "knc1", VFL_TYPE_VIDEO))) { > - /* fixme: proper cleanup here */ > + ttpci_budget_deinit(&budget_av->budget); > + kfree(budget_av); I think this should go after the saa7146_vv_release() release below. Just in case saa7146_vv_release() relies on budget_av somewhere. And besides, it is good practice to release resources in the reverse order they were allocated. Regards, Hans > ERR("cannot register capture v4l2 device\n"); > saa7146_vv_release(dev); > return err;