Authors: Mike McCormack <mikem@codeweavers.com>, Jeremy White <jwhite@codeweavers.com>
Fixed memory leaks.
diff --git a/dlls/setupapi/queue.c b/dlls/setupapi/queue.c
index 59e0617..db7f7ae 100644
--- a/dlls/setupapi/queue.c
+++ b/dlls/setupapi/queue.c
@@ -115,9 +115,9 @@
/* free all the file operations on a given queue */
static void free_file_op_queue( struct file_op_queue *queue )
{
- struct file_op *op;
+ struct file_op *t, *op = queue->head;
- for (op = queue->head; op; op = op->next)
+ while( op )
{
HeapFree( GetProcessHeap(), 0, op->src_root );
HeapFree( GetProcessHeap(), 0, op->src_path );
@@ -126,6 +126,9 @@
HeapFree( GetProcessHeap(), 0, op->src_tag );
HeapFree( GetProcessHeap(), 0, op->dst_path );
if (op->dst_file != op->src_file) HeapFree( GetProcessHeap(), 0, op->dst_file );
+ t = op;
+ op = op->next;
+ HeapFree( GetProcessHeap(), 0, t );
}
}