Skip to contentSkip to conversation

soc: ti: knav_qmss_queue: Use list_for_each_entry_safe to prevent use after free

PATCH In review Axel Lin 2 participants 2 messages Nov 1, 2014 – Nov 3, 2014 TI Keystone multicore navigator drivers

lore
Share & tools
lore

Axel Lin

author
#0 lore raw

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.

---
 drivers/soc/ti/knav_qmss_queue.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/soc/ti/knav_qmss_queue.c +2 -2
index 6f22d56..9b8dd67 100644
@@ -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, &region->pools, region_inst)
+		list_for_each_entry_safe(pool, tmp, &region->pools, region_inst)
 			knav_pool_destroy(pool);
 
 		size = region->virt_end - region->virt_start;
Signature · 1 line
1.9.1
#1 lore raw
Quoted 5 lines · Axel Lin

list_for_each_entry_safe() is necessary if list objects are deleted from the list while traversing it.

---

Right. Picked up for 3.19. Thanks !!

Regards,
Santosh