summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libbb/inode_hash.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/libbb/inode_hash.c b/libbb/inode_hash.c
index 715535e..2f02d07 100644
--- a/libbb/inode_hash.c
+++ b/libbb/inode_hash.c
@@ -72,13 +72,18 @@ void FAST_FUNC add_to_ino_dev_hashtable(const struct stat *statbuf, const char *
void FAST_FUNC reset_ino_dev_hashtable(void)
{
int i;
- ino_dev_hashtable_bucket_t *bucket;
+ ino_dev_hashtable_bucket_t *bucket, *next;
+
+ if (!ino_dev_hashtable)
+ return;
+
+ for (i = 0; i < HASH_SIZE; i++) {
+ bucket = ino_dev_hashtable[i];
- for (i = 0; ino_dev_hashtable && i < HASH_SIZE; i++) {
- while (ino_dev_hashtable[i] != NULL) {
- bucket = ino_dev_hashtable[i]->next;
- free(ino_dev_hashtable[i]);
- ino_dev_hashtable[i] = bucket;
+ while (bucket != NULL) {
+ next = bucket->next;
+ free(bucket);
+ bucket = next;
}
}
free(ino_dev_hashtable);