Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp2819146imu; Sun, 23 Dec 2018 08:29:38 -0800 (PST) X-Google-Smtp-Source: ALg8bN6oj/g1WblCH4MqxwYP1/fxWLPRuNOPE73vRqpkPUdf/DQv17TwJodUGXyQao9/PDNpugRo X-Received: by 2002:a17:902:128c:: with SMTP id g12mr9731941pla.146.1545582578060; Sun, 23 Dec 2018 08:29:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1545582578; cv=none; d=google.com; s=arc-20160816; b=A8NQbQpaeb20MaGohU6PYBHI2JR+P4N9hVUCDhy1wFCSfGA/I6Ai8qHe3KJje8Pc/A TpKjIi/SW7j0MKLxZvf87QqwdsPYyfgQNr3F1Cb9O6hDW2hi4oT0Mq9O/nOo3iW6ryoo SKbT0iWyrn9xdcRGzCwW028aJ/Hs4NasUrTHyVUfbr4afStLOW5n5rYBCEejjWoMIScp Qw/0uvJX0CngI0MWKxY9yGgtAG5FhgfNcRMCaPvdsa6mOnh2XD7ajwDNFczrc2L2W+Bi dfpEOCzVFHA+FMBwOF7t/OXCtLzlzR9f/yn2cNxFRSkmctccbFMzp1Nrpp4Wbf4Zin7p tXOA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=aaNn3bOSdEzsm2nezxVuQPsek++rJcWhrW7CA4wka0E=; b=EakK3KEIxTBQRwZozg+mFF5UdGW8RPkZE5lMVo4p9jjtqur5/uZOvQ8CAoAP35SrD2 yNQCaj/63jhOHBeCKYLnc16WH0UQ+BrN6RhgYavE+3EiFMljdDe2TM9ewrmdOKXtBZ33 Yu7kmVD/QZDP7dQtlcGBAPdqNDQuEIHM0zODBPhtSNC4hzCt2tfjfJfABtQMyYUeA+9X 5Ud7M2aDPK9b20xmNFvapW4evx+60GHKS8wJYyqd+G1VRZQ0eejR71twueLekrhCpx+/ bzRWGSJb1OSo+XsT68CQrOhlwy+2F619cIvFuYyIMHcj8o1dl+mlHGK69Qp1BjVbQLpF wsqA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=canonical.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j65si4332293pge.444.2018.12.23.08.29.22; Sun, 23 Dec 2018 08:29:38 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=canonical.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2391959AbeLVScO (ORCPT + 99 others); Sat, 22 Dec 2018 13:32:14 -0500 Received: from youngberry.canonical.com ([91.189.89.112]:42517 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2391852AbeLVSbG (ORCPT ); Sat, 22 Dec 2018 13:31:06 -0500 Received: from 1.general.cking.uk.vpn ([10.172.193.212] helo=localhost) by youngberry.canonical.com with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.76) (envelope-from ) id 1gai0w-0003yb-Hk; Sat, 22 Dec 2018 14:12:26 +0000 From: Colin King To: Yasunari Takiguchi , Mauro Carvalho Chehab , linux-media@vger.kernel.org Cc: kernel-janitors@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH][next] media: cxd2880-spi: fix two memory leaks of dvb_spi Date: Sat, 22 Dec 2018 14:12:26 +0000 Message-Id: <20181222141226.15775-1-colin.king@canonical.com> X-Mailer: git-send-email 2.19.1 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Colin Ian King There are two return paths that do not kfree dvb_spi. Fix the memory leaks by returning via the exit label fail_adapter that will free dvi_spi. Detected by CoverityScan, CID#1475991 ("Resource Leak") Fixes: cb496cd472af ("media: cxd2880-spi: Add optional vcc regulator") Signed-off-by: Colin Ian King --- drivers/media/spi/cxd2880-spi.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/media/spi/cxd2880-spi.c b/drivers/media/spi/cxd2880-spi.c index d5c433e20d4a..3499c90dc695 100644 --- a/drivers/media/spi/cxd2880-spi.c +++ b/drivers/media/spi/cxd2880-spi.c @@ -522,13 +522,15 @@ cxd2880_spi_probe(struct spi_device *spi) dvb_spi->vcc_supply = devm_regulator_get_optional(&spi->dev, "vcc"); if (IS_ERR(dvb_spi->vcc_supply)) { - if (PTR_ERR(dvb_spi->vcc_supply) == -EPROBE_DEFER) - return -EPROBE_DEFER; + if (PTR_ERR(dvb_spi->vcc_supply) == -EPROBE_DEFER) { + ret = -EPROBE_DEFER; + goto fail_adapter; + } dvb_spi->vcc_supply = NULL; } else { ret = regulator_enable(dvb_spi->vcc_supply); - if (ret) - return ret; + if (ret) + goto fail_adapter; } dvb_spi->spi = spi; -- 2.19.1