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 AD937A04BC for ; Thu, 8 Oct 2020 01:45:25 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 8FF561B65F; Thu, 8 Oct 2020 01:45:24 +0200 (CEST) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by dpdk.org (Postfix) with ESMTP id 4A07D4C9D; Thu, 8 Oct 2020 01:45:20 +0200 (CEST) IronPort-SDR: J/Enske/aQHtW4gxKBF0m9lCWdcvJJFw+V6WqFEOrqThGuFieHeSv7HTjgE+ZjfIV7lc9YHqEC Up4EjpceWGQg== X-IronPort-AV: E=McAfee;i="6000,8403,9767"; a="144523864" X-IronPort-AV: E=Sophos;i="5.77,348,1596524400"; d="scan'208";a="144523864" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Oct 2020 16:45:17 -0700 IronPort-SDR: S5Dv1b2fbZ70Vyl4KzmHXPx5Op8+TwUOj6brJDjbu+wFrCoomd68Ie5msSpz8vNYMNBpktwnGJ VukzYT0oqYXw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,348,1596524400"; d="scan'208";a="354252804" Received: from orsmsx604.amr.corp.intel.com ([10.22.229.17]) by FMSMGA003.fm.intel.com with ESMTP; 07 Oct 2020 16:45:18 -0700 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX604.amr.corp.intel.com (10.22.229.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 7 Oct 2020 16:45:17 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Wed, 7 Oct 2020 16:45:17 -0700 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (104.47.74.41) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Wed, 7 Oct 2020 16:45:17 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZHbzh769ACJ/FiVc/KB1hZYByRhA5YvGDg6CW5g/6CHB2h6o6MRyHBFhYKO0F1i2YwzGcIdIS43kwmTRMkwhtnJLryzt/Y3qxJPrtFo+VfzIDME4DteyoFhhcoOFtJXayX7uBIccGQ1XRb1iNHBPL7Lpomotq125ktg4ZllG4edlaKl01N9ewMJfr7Gtx+Nb+7jET6py2HQsrHrQaCPAlki2z+tRD7A3EHHWdonVBj3RCzNOvgyq4TXqD32v8IwNRkHjSgVrKpmRGuDjpVc/wUK7BQ8J1eNBludMTccf4AGTGuCKQut2UDPOT+S6A+GnRpvEIGgaVtN8cdLTPjuspg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lEdu3a6bR6VAUHiBhjyqIKla3MuTNa4DyyiP7+pFonI=; b=h7nxwz9KZJ1KE0GPY/hOcfXegasfsFNRMk69xSOMxWGSRtfoht0VleevDqE69wVMnIaKHz7kGi6bd/qVtBIUoEnrZU06WbPkvWMaI8fbMyan+Fp3PTk5XC8zuIegdVKJfqQXNPgVUOdXRbk8onwkVb4X7s2kqHRPJl1+CX8SjYn8H9QujeFaS4xQ/Igl5XAcjvDhZZCr7sDzoVg9EYUGuZx58MjqvlSXwXCR2KUdicfvMaFwZK0QpH+ecfvVIUnNLQto8x344fM5W7EK7FwgqV9T3CnLWijSgYt9pEkrsIC1VSYP8lTy3FNGfhBV87kyjY8xnFERyye4LU1zN+hXMQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lEdu3a6bR6VAUHiBhjyqIKla3MuTNa4DyyiP7+pFonI=; b=tLJ8+gYsLLHNbYwoC18cokI8u+gVG9ZtkSyEU3FVm7ioerI7yHYTa+hygT/4/Wl15VQG6CgOOSAG9HMGeMazw7xa7ni4zpvF3QYb9wSp+1RAyHHeF3/BcfcUj6D9SVj+g5bnQqLPKtyjh+ADdSpS+hWgwO56EO4sfs5tmi1qBEY= Received: from BY5PR11MB4451.namprd11.prod.outlook.com (2603:10b6:a03:1cb::30) by BYAPR11MB2551.namprd11.prod.outlook.com (2603:10b6:a02:c5::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3433.43; Wed, 7 Oct 2020 23:45:16 +0000 Received: from BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::4162:97e1:7d04:a508]) by BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::4162:97e1:7d04:a508%7]) with mapi id 15.20.3433.046; Wed, 7 Oct 2020 23:45:16 +0000 From: "Chautru, Nicolas" To: wangyunjian , "dev@dpdk.org" CC: "jerry.lilijun@huawei.com" , "xudingke@huawei.com" , "stable@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH] baseband/turbo_sw: fix memory leak in error path Thread-Index: AQHWnIjefIQK3tFJmU2RQaiYMMDLlamMzG/Q Date: Wed, 7 Oct 2020 23:45:16 +0000 Message-ID: References: <1cad32e57c8081477a0f448b5b3d61711ef6b382.1602060933.git.wangyunjian@huawei.com> In-Reply-To: <1cad32e57c8081477a0f448b5b3d61711ef6b382.1602060933.git.wangyunjian@huawei.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: huawei.com; dkim=none (message not signed) header.d=none;huawei.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [45.28.143.88] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c77c8788-135e-44af-e59a-08d86b1b0ac9 x-ms-traffictypediagnostic: BYAPR11MB2551: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2582; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: t9t1OEl3Di2l5x+VWRCdY+gGiM39gMPWHLUQ5bCtHRWstiOslWOzsLCaA6UGTAW9Mqqj/tvbTtiG4DK80qlynG1HIfx5kIL1QURMkcAxl6FCutuy6aL2fq9qPEIM715orU3trSvvpQ3dpKzXHW1iIX69NjYH9IE9hDUs+wZHUJLoTuR/cTSHSerud9Gbhbhibyj3T4x6hbeFzCprJL90DL/Seg78OfW/YzM8DnZSY//QUwT89Rbgwd0ZyvjcLN/VUTT0zVckVTW8iYKfdK6aAQ0RHudrV9jghcjHzfFLwqO+/C2Zgx0IuXfZkCS04r2g9MGkwRO9JiSYiPxTuG6p0g== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY5PR11MB4451.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(136003)(376002)(39860400002)(366004)(346002)(396003)(66946007)(66446008)(316002)(66476007)(66556008)(64756008)(76116006)(83380400001)(8936002)(110136005)(478600001)(2906002)(55016002)(53546011)(186003)(8676002)(4326008)(54906003)(86362001)(5660300002)(26005)(71200400001)(9686003)(7696005)(33656002)(52536014)(6506007); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: c7ifCOZjAZe9biv5QHLSwVtQRJ5mVdpzmdT2kiUQpuFJBrGt0cqv4wk/UO0yj6NkB9R2eIi+sk7yv5VPPLoGCddNARnXSaHQc4l8Kw7czRG1T9+x0KGau8C1dEAt+HDuSrui78UfJdRIO51b0bs8etjE16SccGoee6d0kZVOiLOUAA9ec7W+xEMYq8RC2ICrIfnMDJsRn6FV10o3Dxvnan6zvl0c9/x9Rm9ktYiwt00udd5vB+0i0uV1JRYOdaItblx1VK8S/mmEwxHJz9uPVAoMlg47Yvo2aHjbkhR4qmuRYJp1BMOEsIGe0qQCUd8einGRs0BxvwkHgRBYnl0FwY8Q4Gktd18o5yBz7jF1IpTfZ84oRxyYJExyY2BkE5ZnUV9xe37yXL8/+8GhqJMhOq0Fo+9a9Gr6H/ScNsaleee9y4Vi0ccJb8ce//XwlmdHINskswAYpMowpKwjuzsSUOLuBO9Ao9x9u2NBaFunAzhIYra4BeO6PErBPxqbTaP/H9oUhjYCsy8Fhv6RYVJx34CLc5Ke+Zd5Bhi8Qfe2aYw9XTicSYFtlGMDTvZiHL4K/4aTTo7rGzQ+mJj707Uy54zgCbv1t5W+HvAMBT9tDl2VNPjkevBIbeFfYN+T8niLtTNKffPZhs4kOelrccKDOA== x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BY5PR11MB4451.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c77c8788-135e-44af-e59a-08d86b1b0ac9 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Oct 2020 23:45:16.1458 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Kn0A3Y1UIpJ9h/T64RGTdXHXNHaMnjtCAnzeYmUxZJMxB3+A5ij/4KQUkSn1+fsrzpxJ4rIbjNoe3oOVDcEwwl4L3TwFSQd0XC+xZPkB0Ns= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR11MB2551 X-OriginatorOrg: intel.com Subject: Re: [dpdk-stable] [dpdk-dev] [PATCH] baseband/turbo_sw: fix memory leak in error path X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" Hi wangyunjian, > -----Original Message----- > From: wangyunjian > Sent: Wednesday, October 7, 2020 2:04 AM > To: dev@dpdk.org > Cc: Chautru, Nicolas ; jerry.lilijun@huawei.co= m; > xudingke@huawei.com; Yunjian Wang ; > stable@dpdk.org > Subject: [dpdk-dev] [PATCH] baseband/turbo_sw: fix memory leak in error > path >=20 > From: Yunjian Wang >=20 > In q_setup() allocated memory for the queue data, we should free it when > error happens, otherwise it will lead to memory leak. >=20 > Fixes: b8cfe2c9aed2 ("bb/turbo_sw: add software turbo driver") > Cc: stable@dpdk.org >=20 > Signed-off-by: Yunjian Wang > --- > drivers/baseband/turbo_sw/bbdev_turbo_software.c | 16 ++++++++-------- > 1 file changed, 8 insertions(+), 8 deletions(-) >=20 > diff --git a/drivers/baseband/turbo_sw/bbdev_turbo_software.c > b/drivers/baseband/turbo_sw/bbdev_turbo_software.c > index a36099e91..e55b32927 100644 > --- a/drivers/baseband/turbo_sw/bbdev_turbo_software.c > +++ b/drivers/baseband/turbo_sw/bbdev_turbo_software.c > @@ -302,7 +302,7 @@ q_setup(struct rte_bbdev *dev, uint16_t q_id, > rte_bbdev_log(ERR, > "Creating queue name for device %u queue > %u failed", > dev->data->dev_id, q_id); > - return -ENAMETOOLONG; > + goto free_q; It may be better to move the freeing into a common function and return the = relevant failure ENUM for each failure reason.=20 With the proposed changed it would always return EFAULT to application. For information did you ever catch that exception from actually running the= code or purely from code review? I struggle to see that error genuinely ha= ppening. Thanks, Nic > } > q->enc_out =3D rte_zmalloc_socket(name, > ((RTE_BBDEV_TURBO_MAX_TB_SIZE >> 3) + 3) * @@ > -322,7 +322,7 @@ q_setup(struct rte_bbdev *dev, uint16_t q_id, > rte_bbdev_log(ERR, > "Creating queue name for device %u queue > %u failed", > dev->data->dev_id, q_id); > - return -ENAMETOOLONG; > + goto free_q; > } > q->enc_in =3D rte_zmalloc_socket(name, > (RTE_BBDEV_LDPC_MAX_CB_SIZE >> 3) * sizeof(*q- > >enc_in), @@ -340,7 +340,7 @@ q_setup(struct rte_bbdev *dev, uint16_t > q_id, > rte_bbdev_log(ERR, > "Creating queue name for device %u queue > %u failed", > dev->data->dev_id, q_id); > - return -ENAMETOOLONG; > + goto free_q; > } > q->ag =3D rte_zmalloc_socket(name, > RTE_BBDEV_TURBO_MAX_CB_SIZE * 10 * sizeof(*q- > >ag), @@ -358,7 +358,7 @@ q_setup(struct rte_bbdev *dev, uint16_t q_id, > rte_bbdev_log(ERR, > "Creating queue name for device %u queue > %u failed", > dev->data->dev_id, q_id); > - return -ENAMETOOLONG; > + goto free_q; > } > q->code_block =3D rte_zmalloc_socket(name, > RTE_BBDEV_TURBO_MAX_CB_SIZE * sizeof(*q- > >code_block), @@ -377,7 +377,7 @@ q_setup(struct rte_bbdev *dev, > uint16_t q_id, > rte_bbdev_log(ERR, > "Creating queue name for device %u queue > %u failed", > dev->data->dev_id, q_id); > - return -ENAMETOOLONG; > + goto free_q; > } > q->deint_input =3D rte_zmalloc_socket(name, > DEINT_INPUT_BUF_SIZE * sizeof(*q->deint_input), > @@ -396,7 +396,7 @@ q_setup(struct rte_bbdev *dev, uint16_t q_id, > rte_bbdev_log(ERR, > "Creating queue name for device %u queue > %u failed", > dev->data->dev_id, q_id); > - return -ENAMETOOLONG; > + goto free_q; > } > q->deint_output =3D rte_zmalloc_socket(NULL, > DEINT_OUTPUT_BUF_SIZE * sizeof(*q- > >deint_output), @@ -415,7 +415,7 @@ q_setup(struct rte_bbdev *dev, > uint16_t q_id, > rte_bbdev_log(ERR, > "Creating queue name for device %u queue > %u failed", > dev->data->dev_id, q_id); > - return -ENAMETOOLONG; > + goto free_q; > } > q->adapter_output =3D rte_zmalloc_socket(NULL, > ADAPTER_OUTPUT_BUF_SIZE * sizeof(*q- > >adapter_output), @@ -433,7 +433,7 @@ q_setup(struct rte_bbdev *dev, > uint16_t q_id, > rte_bbdev_log(ERR, > "Creating queue name for device %u queue > %u failed", > dev->data->dev_id, q_id); > - return -ENAMETOOLONG; > + goto free_q; > } > q->processed_pkts =3D rte_ring_create(name, queue_conf- > >queue_size, > queue_conf->socket, RING_F_SP_ENQ | > RING_F_SC_DEQ); > -- > 2.23.0