Received: by 2002:a25:e74b:0:0:0:0:0 with SMTP id e72csp692216ybh; Wed, 22 Jul 2020 10:40:38 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz/+uiP+a2VNLp6F3vXuJLUF65DoPVP2+bQEA0F2vTQYZIXXLQcohvmU/Pkbhbepfb8qF+r X-Received: by 2002:a17:906:65b:: with SMTP id t27mr636757ejb.457.1595439638557; Wed, 22 Jul 2020 10:40:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595439638; cv=none; d=google.com; s=arc-20160816; b=Goe6wfsGsnMpcKAo3Ti0wrLeGaIHHMNtnGyhlUxLcNokNeFdEyp5bn4FJDeMgWyQO8 Ib2wqFl3ZWOKxjhcppDwVhXodGva+vewX0iDhhgRZDqPaq7YHtjIjVvEK8ObehUbw1o4 cAjGIHuJJH+ueL68qJuFgVRWm0mBBsn9ywZTju/TfSTiup9flxN3G896SQGKJ7p2eJ81 nwnXRgk7QK9l0k9Vmx/D9l3vV57hBFlT9df2vgrTIs2YKftoRbWmu9LbL8DsRG6rNCMg nJOSRRtoluK8jV0tntIzRCsWTLoDaCBophieR7i420c+CMpobkp9blqDHLmXHlbAgdnH O4WQ== 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=rnCqKMICGv5a0A4afnGP7tXrKNFf06GWZ9anr7rANqg=; b=v9s7iSISb8/WFDPcSTDp4I12tavMiRbfxyqr2n4MXoBYPVy8UgFM9qqG6LPkxt7rBZ 1/dVlqnBfOBT3sA+f8Oopj1IMP3M5DirR9JM/+ryKB9flUIXHg3WOLjzr58gkMgnNDQy 012gIjSGhRJGcArSNEdflPvbr8xcHxZbeW0FidM3DFuX3ONVUd+p47qhckf3FlHnBJlq mZhJB+jjBDCbs40TuJM+O0RGg53lb9Km5S624se8qU6EdwVXXdeMILWtp0lvwVm2jfui Y35T8jw32CH5+PsZZ0p+eB5l9gzGOevtqy1hZSTql0aY1v8iSUkV0FgqhQYKmeQ9C5VK k3Ig== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 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. [23.128.96.18]) by mx.google.com with ESMTP id y27si382400eje.284.2020.07.22.10.40.14; Wed, 22 Jul 2020 10:40:38 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 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 S1728821AbgGVRkI (ORCPT + 99 others); Wed, 22 Jul 2020 13:40:08 -0400 Received: from youngberry.canonical.com ([91.189.89.112]:45963 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726157AbgGVRkH (ORCPT ); Wed, 22 Jul 2020 13:40:07 -0400 Received: from 1.general.cking.uk.vpn ([10.172.193.212] helo=localhost) by youngberry.canonical.com with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1jyIip-000752-QJ; Wed, 22 Jul 2020 17:40:03 +0000 From: Colin King To: Shannon Nelson , Pensando Drivers , "David S . Miller" , Jakub Kicinski , netdev@vger.kernel.org Cc: kernel-janitors@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH][next] ionic: fix memory leak of object 'lid' Date: Wed, 22 Jul 2020 18:40:03 +0100 Message-Id: <20200722174003.962374-1-colin.king@canonical.com> X-Mailer: git-send-email 2.27.0 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 Currently when netdev fails to allocate the error return path fails to free the allocated object 'lid'. Fix this by setting err to the return error code and jumping to a new label that performs the kfree of lid before returning. Addresses-Coverity: ("Resource leak") Fixes: 4b03b27349c0 ("ionic: get MTU from lif identity") Signed-off-by: Colin Ian King --- drivers/net/ethernet/pensando/ionic/ionic_lif.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/pensando/ionic/ionic_lif.c b/drivers/net/ethernet/pensando/ionic/ionic_lif.c index 7ad338a4653c..728dd6429d80 100644 --- a/drivers/net/ethernet/pensando/ionic/ionic_lif.c +++ b/drivers/net/ethernet/pensando/ionic/ionic_lif.c @@ -2034,7 +2034,8 @@ static struct ionic_lif *ionic_lif_alloc(struct ionic *ionic, unsigned int index ionic->ntxqs_per_lif, ionic->ntxqs_per_lif); if (!netdev) { dev_err(dev, "Cannot allocate netdev, aborting\n"); - return ERR_PTR(-ENOMEM); + err = -ENOMEM; + goto err_out_free_lid; } SET_NETDEV_DEV(netdev, dev); @@ -2120,6 +2121,7 @@ static struct ionic_lif *ionic_lif_alloc(struct ionic *ionic, unsigned int index err_out_free_netdev: free_netdev(lif->netdev); lif = NULL; +err_out_free_lid: kfree(lid); return ERR_PTR(err); -- 2.27.0