This patch fixes memory leak in parsing error handling.

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

Signed-off-by: Xueming Li <xuemi...@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

Reply via email to