Mike McCormack : server: Make sure we don' t get into an infinite loop freeing inodes.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Feb 22 10:32:12 CST 2006


Module: wine
Branch: refs/heads/master
Commit: 309a9bf36fa114ad59b61987cf27b4f39faf7125
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=309a9bf36fa114ad59b61987cf27b4f39faf7125

Author: Mike McCormack <mike at codeweavers.com>
Date:   Wed Feb 22 23:11:17 2006 +0900

server: Make sure we don't get into an infinite loop freeing inodes.

---

 server/change.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/server/change.c b/server/change.c
index e1093d6..923bbce 100644
--- a/server/change.c
+++ b/server/change.c
@@ -492,10 +492,10 @@ static void free_inode( struct inode *in
 
     if (!subtree && !inode->parent)
     {
-        struct list *head;
-        while ( (head = list_head(&inode->children)) )
+        struct inode *tmp, *next;
+        LIST_FOR_EACH_ENTRY_SAFE( tmp, next, &inode->children,
+                                  struct inode, ch_entry )
         {
-            struct inode *tmp = LIST_ENTRY( head, struct inode, ch_entry );
             assert( tmp != inode );
             assert( tmp->parent == inode );
             free_inode( tmp );




More information about the wine-cvs mailing list