soc: ti: knav_qmss_queue: Use list_for_each_entry_safe to prevent use after free
PATCH 1/1 soc: ti: knav_qmss_queue: Use list_for_each_entry_safe to prevent use after free
list_for_each_entry_safe() is necessary if list objects are deleted from the list while traversing it.
Signed-off-by Axel Lin <[email protected]>
--- drivers/soc/ti/knav_qmss_queue.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/soc/ti/knav_qmss_queue.c +2 -2
@@ -1306,14 +1306,14 @@ static void knav_free_queue_ranges(struct knav_device *kdev)static void knav_queue_free_regions (struct knav_device *kdev) {struct knav_region *region; -struct knav_pool *pool; +struct knav_pool *pool, *tmp;unsigned size;for (;;) { region =first_region (kdev);if (!region)break ; -list_for_each_entry (pool, ®ion->pools, region_inst) +list_for_each_entry_safe (pool, tmp, ®ion->pools, region_inst)knav_pool_destroy (pool); size = region->virt_end - region->virt_start;
Signature · 1 line
1.9.1
Quoted 5 lines · Axel Lin
list_for_each_entry_safe()is necessary if list objects are deleted from the list while traversing it.Signed-off-by Axel Lin <[email protected]>---
Right. Picked up for 3.19. Thanks !!
Regards,
Santosh