makefs: Initialize cd9660 inode map only once

Error introduced during a refactoring; cd9660_susp_initialize calls
itself recursively.

Sponsred by:	The FreeBSD Foundation
Fixes: 35a2e286157a ("makefs: Record inode for all entries in mtree mode")
This commit is contained in:
Ed Maste
2025-03-01 08:30:52 -05:00
parent 7ee310c80e
commit a18be39aaf
+13 -7
View File
@@ -70,8 +70,10 @@ cd9660_susp_initialize(iso9660_disk *diskStructure, cd9660node *node,
if (node->dot_dot_record != 0)
TAILQ_INIT(&(node->dot_dot_record->head));
RB_INIT(&diskStructure->rr_inode_map);
diskStructure->rr_inode_next = 1;
if (diskStructure->rr_inode_next == 0) {
RB_INIT(&diskStructure->rr_inode_map);
diskStructure->rr_inode_next = 1;
}
/* SUSP specific entries here */
if ((r = cd9660_susp_initialize_node(diskStructure, node)) < 0)
@@ -121,11 +123,15 @@ cd9660_susp_finalize(iso9660_disk *diskStructure, cd9660node *node)
if ((r = cd9660_susp_finalize(diskStructure, temp)) < 0)
return r;
}
RB_FOREACH_SAFE(mapnode, inode_map_tree,
&(diskStructure->rr_inode_map), mapnodetmp) {
RB_REMOVE(inode_map_tree, &(diskStructure->rr_inode_map),
mapnode);
free(mapnode);
if (diskStructure->rr_inode_next != 0) {
RB_FOREACH_SAFE(mapnode, inode_map_tree,
&(diskStructure->rr_inode_map), mapnodetmp) {
RB_REMOVE(inode_map_tree,
&(diskStructure->rr_inode_map), mapnode);
free(mapnode);
}
diskStructure->rr_inode_next = 0;
}
return 1;
}