From: Eric Biggers Date: Mon, 20 Aug 2012 17:24:46 +0000 (-0500) Subject: Fixes X-Git-Tag: v1.0.0~117 X-Git-Url: https://wimlib.net/git/?p=wimlib;a=commitdiff_plain;h=d125eeb310e7e4d3e4288293acc32997462a39ca Fixes - Fix lte_decrement_refcnt() assertion - Assign inode numbers to new directories --- diff --git a/src/lookup_table.c b/src/lookup_table.c index 9edde937..66c46700 100644 --- a/src/lookup_table.c +++ b/src/lookup_table.c @@ -163,12 +163,14 @@ lookup_table_decrement_refcnt(struct lookup_table* table, const u8 hash[]) struct lookup_table_entry * lte_decrement_refcnt(struct lookup_table_entry *lte, struct lookup_table *table) { - wimlib_assert(lte->refcnt); - if (lte && --lte->refcnt == 0) { - lookup_table_unlink(table, lte); - if (lte->num_opened_fds == 0) { - free_lookup_table_entry(lte); - lte = NULL; + if (lte) { + wimlib_assert(lte->refcnt); + if (--lte->refcnt == 0) { + lookup_table_unlink(table, lte); + if (lte->num_opened_fds == 0) { + free_lookup_table_entry(lte); + lte = NULL; + } } } return lte; diff --git a/src/mount.c b/src/mount.c index 68909618..46da9e74 100644 --- a/src/mount.c +++ b/src/mount.c @@ -1039,6 +1039,7 @@ static int wimfs_mkdir(const char *path, mode_t mode) newdir = new_dentry(basename); newdir->attributes |= FILE_ATTRIBUTE_DIRECTORY; newdir->resolved = true; + newdir->hard_link = next_link_group_id++; link_dentry(newdir, parent); return 0; }