From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id E532FA0352; Tue, 5 May 2020 23:41:41 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 424C21D6F0; Tue, 5 May 2020 23:41:34 +0200 (CEST) Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by dpdk.org (Postfix) with ESMTP id 7CE401D6E5 for ; Tue, 5 May 2020 23:41:32 +0200 (CEST) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20200505214131euoutp028bab58f74f26f5d2ef664f472519d249~MP8bHuwFt1709617096euoutp02k for ; Tue, 5 May 2020 21:41:31 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20200505214131euoutp028bab58f74f26f5d2ef664f472519d249~MP8bHuwFt1709617096euoutp02k DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1588714891; bh=v0xLy1y9X8L/xXHb87ZwSADsZVo4Ewg3nURJfNjlCnw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sfJJOhHBMKR8R42cIA/EsA3XnGqag9jDOhHperjkH7fw6nmC5B70YDVqQbgrmZsWz nGVbhJ3hAyL0sN4+5XRVCWImftX+GsC6t4LE5HeZU7dKqh4Fm1Gg8rFsOdT2PTnFrA Z7wrKTb7FEHgKgUiYnudlwLEv2zwLzs7+cjbTiZY= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20200505214130eucas1p1f3cd16fe55b995204f61fe958716f2f5~MP8aiPmE61106811068eucas1p1l; Tue, 5 May 2020 21:41:30 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id C4.91.61286.A8DD1BE5; Tue, 5 May 2020 22:41:30 +0100 (BST) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20200505214129eucas1p146b40738c440b77ee0131d18a80eea3d~MP8ZWxdR20907709077eucas1p1k; Tue, 5 May 2020 21:41:29 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20200505214129eusmtrp23d36fd4c35038f673f349f68267c86a9~MP8ZWNO7Z0253702537eusmtrp2L; Tue, 5 May 2020 21:41:29 +0000 (GMT) X-AuditID: cbfec7f2-f0bff7000001ef66-73-5eb1dd8af15a Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id C4.30.07950.98DD1BE5; Tue, 5 May 2020 22:41:29 +0100 (BST) Received: from localhost.localdomain (unknown [106.210.88.70]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20200505214129eusmtip165d780021c665cf78bf9a3a64fbec339~MP8Yyc7Ko2481324813eusmtip19; Tue, 5 May 2020 21:41:28 +0000 (GMT) From: Lukasz Wojciechowski To: Akhil Goyal , Hemant Agrawal Cc: dev@dpdk.org, l.wojciechow@partner.samsung.com Date: Tue, 5 May 2020 23:41:05 +0200 Message-Id: <20200505214105.19465-2-l.wojciechow@partner.samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200505214105.19465-1-l.wojciechow@partner.samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrMIsWRmVeSWpSXmKPExsWy7djP87pddzfGGZzeYmSx/sw8Rot3n7Yz Wax8vJHN4lnPOkYHFo9fC5ayemx8t4PJ4+C7PUwBzFFcNimpOZllqUX6dglcGZO+drMU7BCo OPFzPksD4zreLkZODgkBE4nWH//Zuxi5OIQEVjBK/Hn9jxnC+cIo0d7xgwXC+cwocejgCnaY lo+97VCJ5UBV+z6yw1Xd3vGQFaSKTcBW4sjMr2C2iECAxPWuPWwgNrOAkcTL7olAOzg4hAXs JXpOOIOEWQRUJe52zwAr5xVwlfg6+SYTxDJ5idUbDjCD2JwCbhKPLt5hA9klIXCGTeLmmVWs EEUuEjM+n4eyhSVeHd8CdamMxP+d85kgGrYxSlz9/ZMRwtnPKHG9F+Yfa4nD/36zgVzELKAp sX6XPogpIeAo0T9BGMLkk7jxVhDifD6JSdumM0OEeSU62oQgZuhJPO2Zygiz9c/aJywQtofE qS9voSE6k1Hi5YrJzBMY5Wch7FrAyLiKUTy1tDg3PbXYMC+1XK84Mbe4NC9dLzk/dxMjMOpP /zv+aQfj10tJhxgFOBiVeHgN3DfGCbEmlhVX5h5ilOBgVhLhXfZjQ5wQb0piZVVqUX58UWlO avEhRmkOFiVxXuNFL2OFBNITS1KzU1MLUotgskwcnFINjDV7V3lleEdL7/6nxLXeV3Gj/4VN le9vLvGXX8d2/Ufv9SPv7F667T6+27m/ZNMF79nG8xO/N4mZvLDe6V3w/fEFd8FCqYvit2et TmIsPNT4xVn4XN2ixbP3P7dtbO3tasveVrM8XjLdRX8Gp7XNS/H7CzkY9m8U8/v/WVz3r3Px dP8Fnwon7FJiKc5INNRiLipOBABvI9oq9gIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrMLMWRmVeSWpSXmKPExsVy+t/xu7qddzfGGRyYo2Cx/sw8Rot3n7Yz Wax8vJHN4lnPOkYHFo9fC5ayemx8t4PJ4+C7PUwBzFF6NkX5pSWpChn5xSW2StGGFkZ6hpYW ekYmlnqGxuaxVkamSvp2NimpOZllqUX6dgl6GZO+drMU7BCoOPFzPksD4zreLkZODgkBE4mP ve0sXYxcHEICSxklZp/qZOti5ABKyEh8uCQAUSMs8edaFxtEzUdGiX/zbjCCJNgEbCWOzPzK CmKLCARIfF90gQ3EZgYaenteE9gcYQF7iZ4TziBhFgFVibvdM8DKeQVcJb5OvskEMV9eYvWG A8wgNqeAm8Sji3fAxggB1cz61sA6gZFvASPDKkaR1NLi3PTcYiO94sTc4tK8dL3k/NxNjMAA 3Hbs55YdjF3vgg8xCnAwKvHwGrhvjBNiTSwrrsw9xCjBwawkwrvsx4Y4Id6UxMqq1KL8+KLS nNTiQ4ymQEdNZJYSTc4HRkdeSbyhqaG5haWhubG5sZmFkjhvh8DBGCGB9MSS1OzU1ILUIpg+ Jg5OqQZGHu+Lxj/E1BYV1ur/sfHcLPot9770tijFVXVXf164K9DdoP26+IHnIWt3pSVzPsmd 79csP9XfFjlZWe6wJIuYqlqJG9dTnpd3z35+/ZypzrHY9/U9ge7e/Nj5Bj050RqmzEK7qmQD D81QqXz9sNzooq/os+I1xzaWOnhqqO4oMGlZtKVpg4MSS3FGoqEWc1FxIgBCAhtlVgIAAA== X-CMS-MailID: 20200505214129eucas1p146b40738c440b77ee0131d18a80eea3d X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-RootMTR: 20200505214129eucas1p146b40738c440b77ee0131d18a80eea3d X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200505214129eucas1p146b40738c440b77ee0131d18a80eea3d References: <20200505214105.19465-1-l.wojciechow@partner.samsung.com> Subject: [dpdk-dev] [PATCH 2/2] crypto/dpaa_sec: repair memory allocations X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" This patch repairs 2 memory allocations issues: 1) possible leak of memory In cryptodev_dpaa_sec_probe() function in case of portal initialization failure, function exited without cleanup. The patch redirects flow to out label, which provides proper cleanup in case of error: freeing cryptodevice private data and releasing cryptodevice. 2) double free of cryptodev private data The function dpaa_sec_dev_init() in case of failure called dpaa_sec_uninit() which freed both private data and security context. However one layer above in cryptodev_dpaa_sec_probe() function, the private data were freed one more time. The patch limits cleanup of the dpaa_sec_dev_init() function to freeing only the security context. Signed-off-by: Lukasz Wojciechowski --- drivers/crypto/dpaa_sec/dpaa_sec.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/crypto/dpaa_sec/dpaa_sec.c b/drivers/crypto/dpaa_sec/dpaa_sec.c index 021a5639d..097ab8de9 100644 --- a/drivers/crypto/dpaa_sec/dpaa_sec.c +++ b/drivers/crypto/dpaa_sec/dpaa_sec.c @@ -3410,7 +3410,7 @@ dpaa_sec_dev_init(struct rte_cryptodev *cryptodev) init_error: DPAA_SEC_ERR("driver %s: create failed\n", cryptodev->data->name); - dpaa_sec_uninit(cryptodev); + rte_free(cryptodev->security_ctx); return -EFAULT; } @@ -3467,7 +3467,7 @@ cryptodev_dpaa_sec_probe(struct rte_dpaa_driver *dpaa_drv __rte_unused, retval = rte_dpaa_portal_init((void *)1); if (retval) { DPAA_SEC_ERR("Unable to initialize portal"); - return retval; + goto out; } } @@ -3476,13 +3476,15 @@ cryptodev_dpaa_sec_probe(struct rte_dpaa_driver *dpaa_drv __rte_unused, if (retval == 0) return 0; + retval = -ENXIO; +out: /* In case of error, cleanup is done */ if (rte_eal_process_type() == RTE_PROC_PRIMARY) rte_free(cryptodev->data->dev_private); rte_cryptodev_pmd_release_device(cryptodev); - return -ENXIO; + return retval; } static int -- 2.17.1