From: Agalya Babu RadhaKrishnan <agalyax.babu.radhakrish...@intel.com>

1 issue caught by 344967
Leaked_storage: Variable sep going out of scope leaks the
storage it points to.

When 'sep' is not null and sep_exist is 0, 'sep' is freed
before going out of scope of the function irrespective of
'addr' exists or not.

Coverity Issue: 344967
Fixes: e67a61614d0b ("bus/fslmc: support device iteration")
Cc: sta...@dpdk.org

Signed-off-by: Agalya Babu RadhaKrishnan <agalyax.babu.radhakrish...@intel.com>
---
 drivers/bus/fslmc/fslmc_bus.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/bus/fslmc/fslmc_bus.c b/drivers/bus/fslmc/fslmc_bus.c
index a2f482516..60c34098c 100644
--- a/drivers/bus/fslmc/fslmc_bus.c
+++ b/drivers/bus/fslmc/fslmc_bus.c
@@ -291,10 +291,13 @@ rte_fslmc_parse(const char *name, void *addr)
                goto err_out;
        }
 
-       if (addr)
+       if (addr) {
                strcpy(addr, sep);
+               if (!sep_exists && sep)
+                       free(sep);
+               return 0;
+       }
 
-       return 0;
 err_out:
        if (!sep_exists && sep)
                free(sep);
-- 
2.14.1

Reply via email to