[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Lost] [Patch] LostIO - Fix fuer vfstree_delete_node



Dieser Patch behebt einen schweren Bug in vfstree_delete_node. Dabei
wurde beim Löschen eines Nodes zwar der richtige gefreet, aber da der
Listen-Index schon inkrementiert wurde, der falsche gelöscht. Zusätzlich
wird noch ein Speicherleck beim löschen von Nodes gefixt.
Index: src/modules/lib/lostio/vfstree.c
===================================================================
--- src/modules/lib/lostio/vfstree.c	(Revision 599)
+++ src/modules/lib/lostio/vfstree.c	(Arbeitskopie)
@@ -282,12 +282,10 @@
     int i = 0;
     vfstree_node_t* node;
     
-    while((node = (vfstree_node_t*) list_get_element_at(parent->children, i++)))
+    while((node = (vfstree_node_t*) list_get_element_at(parent->children, i))
+        && (node != node_del))
     {
-        if(node == node_del)
-        {
-            break;
-        }
+        i++;
     }
     
     //Abbrechen falls der Knoten nicht gefunden wurde
@@ -303,6 +301,7 @@
     parent->size--;
 
     //TODO: Kinder-Knoten Loeschen
+    free(node->name);
     free(node);