We must free all entries that we remove from the list not just one to avoid
a memory leak.

With list_for_each_entry_safe_reverse() it is safe to delete the current
entry as it provides a second pointer for the next entry.

Signed-off-by: Heinrich Schuchardt <xypron.g...@gmx.de>
---
 drivers/dfu/dfu.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/dfu/dfu.c b/drivers/dfu/dfu.c
index 213a20e7bc..f307c9015f 100644
--- a/drivers/dfu/dfu.c
+++ b/drivers/dfu/dfu.c
@@ -535,10 +535,8 @@ void dfu_free_entities(void)
                list_del(&dfu->list);
                if (dfu->free_entity)
                        dfu->free_entity(dfu);
-               t = dfu;
+               free(dfu);
        }
-       if (t)
-               free(t);
        INIT_LIST_HEAD(&dfu_list);

        alt_num_cnt = 0;
--
2.30.2

Reply via email to