Caught by ASan, if a secondary process tried to attach a device with an
incorrect driver name, devargs was leaked.

Fixes: 64051bb1f144 ("devargs: unify scratch buffer storage")
Cc: sta...@dpdk.org

Signed-off-by: David Marchand <david.march...@redhat.com>
---
 lib/eal/common/eal_common_dev.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/lib/eal/common/eal_common_dev.c b/lib/eal/common/eal_common_dev.c
index c0ee4e442f..9d913e5478 100644
--- a/lib/eal/common/eal_common_dev.c
+++ b/lib/eal/common/eal_common_dev.c
@@ -180,8 +180,10 @@ local_dev_probe(const char *devargs, struct rte_device 
**new_dev)
        return ret;
 
 err_devarg:
-       if (rte_devargs_remove(da) != 0)
+       if (rte_devargs_remove(da) != 0) {
                rte_devargs_reset(da);
+               free(da);
+       }
        return ret;
 }
 
-- 
2.23.0

Reply via email to