Release the memory when error occur.

Fixes: 2183c6f69d7e ("bus/dpaa: add OF parser for device scanning")

Signed-off-by: Weiguo Li <liw...@foxmail.com>
---
 drivers/common/dpaax/dpaa_of.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/common/dpaax/dpaa_of.c b/drivers/common/dpaax/dpaa_of.c
index bb2c8fc66b..a827b42efa 100644
--- a/drivers/common/dpaax/dpaa_of.c
+++ b/drivers/common/dpaax/dpaa_of.c
@@ -126,8 +126,10 @@ iterate_dir(struct dirent **d, int num, struct dt_dir *dt)
                                 d[loop]->d_name);
                        subdir->parent = dt;
                        ret = process_dir(subdir->node.node.full_name, subdir);
-                       if (ret)
+                       if (ret) {
+                               free(subdir);
                                return ret;
+                       }
                        list_add_tail(&subdir->node.list, &dt->subdirs);
                        break;
                default:
-- 
2.25.1

Reply via email to