From 5df6b2c3d219cb815d13adf024cfcfa74ad6d15d Mon Sep 17 00:00:00 2001 From: Vreixo Formoso Date: Thu, 6 Dec 2007 16:44:52 +0100 Subject: [PATCH] Fix bug in tree functions. --- src/tree.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/tree.c b/src/tree.c index b67c4f5..da54b35 100644 --- a/src/tree.c +++ b/src/tree.c @@ -46,6 +46,9 @@ int iso_tree_add_new_dir(IsoDir *parent, const char *name, IsoDir **dir) if (parent == NULL || name == NULL) { return ISO_NULL_POINTER; } + if (dir) { + *dir = NULL; + } /* find place where to insert */ pos = &(parent->children); @@ -84,7 +87,7 @@ int iso_tree_add_new_dir(IsoDir *parent, const char *name, IsoDir **dir) /* add to dir */ node->node.parent = parent; - node->node.next = (*pos)->next; + node->node.next = *pos; *pos = (IsoNode*)node; if (dir) { @@ -172,7 +175,7 @@ int iso_tree_add_new_symlink(IsoDir *parent, const char *name, /* add to dir */ node->node.parent = parent; - node->node.next = (*pos)->next; + node->node.next = *pos; *pos = (IsoNode*)node; if (link) { @@ -272,7 +275,7 @@ int iso_tree_add_new_special(IsoDir *parent, const char *name, mode_t mode, /* add to dir */ node->node.parent = parent; - node->node.next = (*pos)->next; + node->node.next = *pos; *pos = (IsoNode*)node; if (special) {