[dpdk-stable] [PATCH v2 1/5] devargs: fix memory leak on parsing error

Xueming Li xuemingl at nvidia.com
Mon Jan 18 16:16:38 CET 2021


This patch fixes memory leak in parsing error handling.

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

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

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



More information about the stable mailing list