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 C47D4A04DC for ; Sat, 17 Oct 2020 02:23:11 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 9F561E284; Sat, 17 Oct 2020 02:23:10 +0200 (CEST) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by dpdk.org (Postfix) with ESMTP id B3274E27A; Sat, 17 Oct 2020 02:23:05 +0200 (CEST) IronPort-SDR: wGeQ4hN0ZSEvQ0fbfMA044eFgnJdynnhNt6VK4BQy4rHk+8+stqCoeZZrJ0WAGlTnK6m7vMSVr jaUDKHxN6llA== X-IronPort-AV: E=McAfee;i="6000,8403,9776"; a="154515565" X-IronPort-AV: E=Sophos;i="5.77,384,1596524400"; d="scan'208";a="154515565" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Oct 2020 17:23:01 -0700 IronPort-SDR: gkpw4Cp00MT7kaF9HV1H9P0gj43BU73HZ2pY2Mnz63hEI1mDqvRAfL93/eVSoT5awosdGZ+T9H LuMPECxX/BJw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,384,1596524400"; d="scan'208";a="522476970" Received: from fmsmsx606.amr.corp.intel.com ([10.18.126.86]) by fmsmga005.fm.intel.com with ESMTP; 16 Oct 2020 17:23:00 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 16 Oct 2020 17:22:59 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Fri, 16 Oct 2020 17:22:59 -0700 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (104.47.74.43) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Fri, 16 Oct 2020 17:22:59 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lNkUZVkq4k7X6YA+yIlSjOebLfUYfq+m9pHchavqzXpEHe6k8bnA2avEvgsli/+5PIQM+P73OEUu8tPN1vV3JAxehPFOMpsTALQ9MPBA10d+xAa3lLC5ekazZtUgXUhtvFUZG3iGkMzHfyy2X/dIHelbjXW/QmodNKQcWh409zoyfkPhDzOTgAGr7Do9GICBMUP/i9z4SbRSDwYMnxk19w8WQy64tbNWzNzsahwwMgjfwWPmIns+Uwf5sVkFRopzhjqc3rlet0yCYdvPj8XXce0ad4i9xfamuqMwS4MXiVobI4AZyaoKWl/ylxNG577oG78JeqwGhm4rJmBFtLbjEQ== 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=Ty1AhaJjFzVuOKmYaaP7tYM7DtsduHJIL/2xsGTpsFs=; b=MF3E+fgUlv86zuLE+E+BZC3wHMWfAUHNUtItpYlAAIQoHtc+s24qV0AM3xJzjCFdBP9mPyFyn7Ubb0jBSv5saBqO+EtXG9U/IcZsU08Lnrak7RZ68Pc7IpcCOTPehrfLFbHTTlzEQMeYGEbHiGyq/X2JnC+2a3pFd2xP6EciE3bP32Q9KP+5uOacuImQKf63ocnkzbOA8JIXf2qOcsc93kGKSufVAtL4fJRhPpFWyUwOJO4NzpuUNtvzUKen/R0XA2qTyKPLHL1qLu4kVzxaHPrvc+0J7TDcAQoZxwtpvwaVd9+TV92zFNezkZ/s6vzFa51MQ58TZfAu6GpD1x8yXg== 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=Ty1AhaJjFzVuOKmYaaP7tYM7DtsduHJIL/2xsGTpsFs=; b=wGSlev2CB1RI8e87S74YML4+oC/rVmT2kI9mfBo2pGjAsRwaomqyLX9dm8BtYtGQjEnijHS91IVUPjQQ6eNF10niYU2wJ6rAeu3O7aZAU6DLp+ipurSoVyOCq3Gq8nh5nQ3Ym8XfWHY8BCv1jJZoYMFbhZKtHb6DVOn30d0NNjU= Received: from BY5PR11MB4451.namprd11.prod.outlook.com (2603:10b6:a03:1cb::30) by BYAPR11MB3013.namprd11.prod.outlook.com (2603:10b6:a03:8b::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.25; Sat, 17 Oct 2020 00:22:58 +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.3455.035; Sat, 17 Oct 2020 00:22:58 +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 v2] baseband/turbo_sw: fix memory leak in error path Thread-Index: AQHWovmiOqabKJwEZkmJudJD4wYu+ama8Qqw Date: Sat, 17 Oct 2020 00:22:58 +0000 Message-ID: References: <1cad32e57c8081477a0f448b5b3d61711ef6b382.1602060933.git.wangyunjian@huawei.com> <1602769545-29456-1-git-send-email-wangyunjian@huawei.com> In-Reply-To: <1602769545-29456-1-git-send-email-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: 73bd9c26-a6be-4bc5-9b51-08d87232ccd5 x-ms-traffictypediagnostic: BYAPR11MB3013: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:170; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 2UUGvRVCxERI+WPu67OmWvkzthOlY0Oh2mC1UO47ZI5LcWww11ByR2jdOomsMazxQ/qbuX27VVHKrrmw/pSDRS9XMoG1VTezQ4mMukNTIurJH1nDNdrGKQDQ/oOvOmRjFuQ+YaDCdJzuPvyP6PP4piup3fyQa1IrmJIH23kV2sH13cF9Xcg2Kr901bHOK1MXnBr82In97nrsv5YchOtmkytfj3P03WVCOFR6wA9basbXUN2aT/1tMK0vvzFh4o+B7Fb9WvTCwBPvGFshjBx6bRSUvbgFfoe39EmGEbSSxvHd0tdo72x6ZlBnGrlvr+m7SzayyIJzQlKoPpocNJcVfg== 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)(346002)(136003)(376002)(396003)(366004)(39860400002)(7696005)(26005)(4326008)(186003)(8676002)(8936002)(71200400001)(478600001)(52536014)(66946007)(76116006)(55016002)(6506007)(53546011)(316002)(2906002)(83380400001)(66446008)(54906003)(9686003)(86362001)(66476007)(64756008)(66556008)(33656002)(5660300002)(110136005); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: nD+5ImiITuRqcEqyBzQq4RkK+5RK0TuV1CoNt4h3WQvW/S1djB8i4U/frW42N+6+5HZ+KMv0nPjlmLiO9QmYSNLSsOtUUErwoLepCrjZcDTmJYUrhCJeYFMf88OKBnRkgg/nTZzfpnoPsVgPcqS+O6tGOlFV3zXei8NpIwlDU1BzbQS1Edkrdw/S4ByW20x2b1y4fhiVlSUXRc61AoIzTpONsQklESMVckXOzUXdDHgCXtbuGseTIgzAzArWeTEIOlQHgmhe5CkfPaIKBojpBLwq+DGjv8XzJk6kDKbuMVDIbK0lnFOkAzbcwrTFmqTZCsaMzY41YgyQnpWEVVKUVns/VNVbu7GV3GVGy/lgRtXDOR5t+R4OFNa0i/m3MpKT6L50q+8ruottIS0IUv5ZDbhVrUya9CX7px9h8pfu8XMuAOi6f4qEMlgxhhHZGiFhWCyAvLZSbmReJflR53aj0ylUQeGN/ZL/KbfAxUwPlSi7Bk7cLGI3leGgyACgOcgcrVynetfn1nzot1jnE4erIrNDeWtBP387jMgx6WB5NMV2x2pt+tHFagnSoiu4MptGiB4h9kiy5ok4cmG0Ro73Z1kxAMkQnrnG4wnNcUtoXmGQWbSg4XikIzBAvXJiDBiFb5PcosJ4Y6v+ogd1BlCXuw== 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: 73bd9c26-a6be-4bc5-9b51-08d87232ccd5 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Oct 2020 00:22:58.2248 (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: 8bGmg4yWCorKGwA7lIu/PWRQrSVz7edb8XyAJ0HZW1DNK6XrHAPMRQrp8w8DoALg2Ayqf94lhB8eJIbM9WhjylIE+Ofa0jWMPtxwWlQnzuY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR11MB3013 X-OriginatorOrg: intel.com Subject: Re: [dpdk-stable] [dpdk-dev] [PATCH v2] 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" Thanks Reviewed-by: Nicolas Chautru > -----Original Message----- > From: wangyunjian > Sent: Thursday, October 15, 2020 6:46 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 v2] baseband/turbo_sw: fix memory leak in erro= r > 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 > --- > v2: > fix code styles Chautru Nicolas > --- > .../baseband/turbo_sw/bbdev_turbo_software.c | 35 ++++++++++++++----- > 1 file changed, 26 insertions(+), 9 deletions(-) >=20 > diff --git a/drivers/baseband/turbo_sw/bbdev_turbo_software.c > b/drivers/baseband/turbo_sw/bbdev_turbo_software.c > index a36099e91..aa7f12238 100644 > --- a/drivers/baseband/turbo_sw/bbdev_turbo_software.c > +++ b/drivers/baseband/turbo_sw/bbdev_turbo_software.c > @@ -10,6 +10,7 @@ > #include > #include > #include > +#include >=20 > #include > #include > @@ -302,7 +303,8 @@ 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; > + ret =3D -ENAMETOOLONG; > + goto free_q; > } > q->enc_out =3D rte_zmalloc_socket(name, > ((RTE_BBDEV_TURBO_MAX_TB_SIZE >> 3) + 3) * @@ > -311,6 +313,7 @@ q_setup(struct rte_bbdev *dev, uint16_t q_id, > if (q->enc_out =3D=3D NULL) { > rte_bbdev_log(ERR, > "Failed to allocate queue memory for %s", name); > + ret =3D -ENOMEM; > goto free_q; > } >=20 > @@ -322,7 +325,8 @@ 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; > + ret =3D -ENAMETOOLONG; > + goto free_q; > } > q->enc_in =3D rte_zmalloc_socket(name, > (RTE_BBDEV_LDPC_MAX_CB_SIZE >> 3) * sizeof(*q- > >enc_in), @@ -330,6 +334,7 @@ q_setup(struct rte_bbdev *dev, uint16_t > q_id, > if (q->enc_in =3D=3D NULL) { > rte_bbdev_log(ERR, > "Failed to allocate queue memory for %s", name); > + ret =3D -ENOMEM; > goto free_q; > } >=20 > @@ -340,7 +345,8 @@ 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; > + ret =3D -ENAMETOOLONG; > + goto free_q; > } > q->ag =3D rte_zmalloc_socket(name, > RTE_BBDEV_TURBO_MAX_CB_SIZE * 10 * sizeof(*q- > >ag), @@ -348,6 +354,7 @@ q_setup(struct rte_bbdev *dev, uint16_t q_id, > if (q->ag =3D=3D NULL) { > rte_bbdev_log(ERR, > "Failed to allocate queue memory for %s", name); > + ret =3D -ENOMEM; > goto free_q; > } >=20 > @@ -358,7 +365,8 @@ 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; > + ret =3D -ENAMETOOLONG; > + goto free_q; > } > q->code_block =3D rte_zmalloc_socket(name, > RTE_BBDEV_TURBO_MAX_CB_SIZE * sizeof(*q- > >code_block), @@ -366,6 +374,7 @@ q_setup(struct rte_bbdev *dev, > uint16_t q_id, > if (q->code_block =3D=3D NULL) { > rte_bbdev_log(ERR, > "Failed to allocate queue memory for %s", name); > + ret =3D -ENOMEM; > goto free_q; > } >=20 > @@ -377,7 +386,8 @@ 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; > + ret =3D -ENAMETOOLONG; > + goto free_q; > } > q->deint_input =3D rte_zmalloc_socket(name, > DEINT_INPUT_BUF_SIZE * sizeof(*q->deint_input), > @@ -385,6 +395,7 @@ q_setup(struct rte_bbdev *dev, uint16_t q_id, > if (q->deint_input =3D=3D NULL) { > rte_bbdev_log(ERR, > "Failed to allocate queue memory for %s", name); > + ret =3D -ENOMEM; > goto free_q; > } >=20 > @@ -396,7 +407,8 @@ 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; > + ret =3D -ENAMETOOLONG; > + goto free_q; > } > q->deint_output =3D rte_zmalloc_socket(NULL, > DEINT_OUTPUT_BUF_SIZE * sizeof(*q- > >deint_output), @@ -404,6 +416,7 @@ q_setup(struct rte_bbdev *dev, > uint16_t q_id, > if (q->deint_output =3D=3D NULL) { > rte_bbdev_log(ERR, > "Failed to allocate queue memory for %s", name); > + ret =3D -ENOMEM; > goto free_q; > } >=20 > @@ -415,7 +428,8 @@ 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; > + ret =3D -ENAMETOOLONG; > + goto free_q; > } > q->adapter_output =3D rte_zmalloc_socket(NULL, > ADAPTER_OUTPUT_BUF_SIZE * sizeof(*q- > >adapter_output), @@ -423,6 +437,7 @@ q_setup(struct rte_bbdev *dev, > uint16_t q_id, > if (q->adapter_output =3D=3D NULL) { > rte_bbdev_log(ERR, > "Failed to allocate queue memory for %s", name); > + ret =3D -ENOMEM; > goto free_q; > } >=20 > @@ -433,12 +448,14 @@ 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; > + ret =3D -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); > if (q->processed_pkts =3D=3D NULL) { > rte_bbdev_log(ERR, "Failed to create ring for %s", name); > + ret =3D -rte_errno; > goto free_q; > } >=20 > @@ -458,7 +475,7 @@ q_setup(struct rte_bbdev *dev, uint16_t q_id, > rte_free(q->deint_output); > rte_free(q->adapter_output); > rte_free(q); > - return -EFAULT; > + return ret; > } >=20 > static const struct rte_bbdev_ops pmd_ops =3D { > -- > 2.23.0 Reviewed-By