From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <stable-bounces@dpdk.org>
Received: from mails.dpdk.org (xvm-189-124.dc0.ghst.net [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 9F1BAA0524
	for <public@inbox.dpdk.org>; Fri,  8 Jan 2021 15:55:14 +0100 (CET)
Received: from [217.70.189.124] (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id 95A28140FF5;
	Fri,  8 Jan 2021 15:55:14 +0100 (CET)
Received: from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129])
 by mails.dpdk.org (Postfix) with ESMTP id 81AEE140FB5
 for <stable@dpdk.org>; Fri,  8 Jan 2021 15:55:11 +0100 (CET)
Received: from Internal Mail-Server by MTLPINE1 (envelope-from
 xuemingl@nvidia.com) with SMTP; 8 Jan 2021 16:55:08 +0200
Received: from nvidia.com ([172.27.8.145])
 by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id 108Et0Ww013726;
 Fri, 8 Jan 2021 16:55:06 +0200
From: Xueming Li <xuemingl@nvidia.com>
To: Thomas Monjalon <thomas@monjalon.net>,
 Ferruh Yigit <ferruh.yigit@intel.com>,
 Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>,
 Olivier Matz <olivier.matz@6wind.com>
Cc: dev@dpdk.org, Viacheslav Ovsiienko <viacheslavo@nvidia.com>,
 xuemingl@nvidia.com, Asaf Penso <asafp@nvidia.com>,
 gaetan.rivet@6wind.com, stable@dpdk.org
Date: Fri,  8 Jan 2021 22:54:36 +0800
Message-Id: <20210108145441.23320-3-xuemingl@nvidia.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <1608304614-13908-2-git-send-email-xuemingl@nvidia.com>
References: <1608304614-13908-2-git-send-email-xuemingl@nvidia.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Subject: [dpdk-stable] [PATCH v1 2/7] devargs: fix memory leak on parsing
 error
X-BeenThere: stable@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: patches for DPDK stable branches <stable.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/stable>,
 <mailto:stable-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/stable/>
List-Post: <mailto:stable@dpdk.org>
List-Help: <mailto:stable-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/stable>,
 <mailto:stable-request@dpdk.org?subject=subscribe>
Errors-To: stable-bounces@dpdk.org
Sender: "stable" <stable-bounces@dpdk.org>

This patch fixes memory leak in parsing error handling.

Fixes: 338327d731e6 ("devargs: add function to parse device layers")
Cc: gaetan.rivet@6wind.com
Cc: stable@dpdk.org

Signed-off-by: Xueming Li <xuemingl@nvidia.com>
---
 lib/librte_eal/common/eal_common_devargs.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/lib/librte_eal/common/eal_common_devargs.c b/lib/librte_eal/common/eal_common_devargs.c
index fcf3d9a3cc..f36f71fbce 100644
--- a/lib/librte_eal/common/eal_common_devargs.c
+++ b/lib/librte_eal/common/eal_common_devargs.c
@@ -163,6 +163,11 @@ rte_devargs_layers_parse(struct rte_devargs *devargs,
 		if (layers[i].kvlist)
 			rte_kvargs_free(layers[i].kvlist);
 	}
+	if (ret && devargs->data && devargs->data != devstr) {
+		/* Free duplicated data. */
+		free(devargs->data);
+		devargs->data = NULL;
+	}
 	if (ret != 0)
 		rte_errno = -ret;
 	return ret;
-- 
2.25.1