aboutsummaryrefslogtreecommitdiff
path: root/sbin
diff options
context:
space:
mode:
authorJoerg Wunsch <joerg@FreeBSD.org>1997-08-10 14:19:13 +0000
committerJoerg Wunsch <joerg@FreeBSD.org>1997-08-10 14:19:13 +0000
commitedb398d7d9ac4cfad246401bdfa082a7bd43ecce (patch)
tree2711eb39dae59124d5c6192648d490c9cf190c26 /sbin
parentac77b4810d30d6abbc7779fcd5716664978b927b (diff)
Notes
Diffstat (limited to 'sbin')
-rw-r--r--sbin/restore/restore.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/sbin/restore/restore.c b/sbin/restore/restore.c
index 936d857d8b52..4da97f144a85 100644
--- a/sbin/restore/restore.c
+++ b/sbin/restore/restore.c
@@ -428,8 +428,12 @@ nodeupdates(name, ino, type)
}
if (ip->e_type == LEAF) {
/* changing from leaf to node */
- removeleaf(ip);
- freeentry(ip);
+ for (ip = lookupino(ino); ip != NULL; ip = ip->e_links) {
+ if (ip->e_type != LEAF)
+ badentry(ip, "NODE and LEAF links to same inode");
+ removeleaf(ip);
+ freeentry(ip);
+ }
ip = addentry(name, ino, type);
newnode(ip);
} else {