Diff between da79a4534b7dc6c75203b56ada4cf7ac761ecfb3 and 51e9b93d604e88a1e09ea5e20467c1fa10d5f6aa

Changed Files

File Additions Deletions Status
src/shared/queue.c +9 -2 modified

Full Patch

diff --git a/src/shared/queue.c b/src/shared/queue.c
index 0019e53..a7cc8d5 100644
--- a/src/shared/queue.c
+++ b/src/shared/queue.c
@@ -176,8 +176,15 @@ void queue_foreach(struct queue *queue, queue_foreach_func_t function,
 	if (!queue || !function)
 		return;
 
-	for (entry = queue->head; entry; entry = entry->next)
-		function(entry->data, user_data);
+	entry = queue->head;
+
+	while (entry) {
+		struct queue_entry *tmp = entry;
+
+		entry = tmp->next;
+
+		function(tmp->data, user_data);
+	}
 }
 
 void *queue_find(struct queue *queue, queue_match_func_t function,