- fix segfault in reset_ino_dev_hashtable() when *hashtable was null. Seen in the testsuite for du -l .../testsuite on exit with CLEAN_UP enabled.
No binary (build failed)
—
(log yok)
| @@ -235,10 +235,8 @@ int du_main(int argc, char **argv) | |
| total += du(*argv); | |
| slink_depth = slink_depth_save; | |
| } while (*++argv); | |
| - | #if ENABLE_FEATURE_CLEAN_UP |
| - | reset_ino_dev_hashtable(); |
| - | #endif |
| - | |
| + | if (ENABLE_FEATURE_CLEAN_UP) |
| + | reset_ino_dev_hashtable(); |
| if (print_final_total) { | |
| print(total, "total"); | |
| } | |
| @@ -77,7 +77,7 @@ void reset_ino_dev_hashtable(void) | |
| int i; | |
| ino_dev_hashtable_bucket_t *bucket; | |
| - | for (i = 0; i < HASH_SIZE; 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]); | |
| @@ -87,4 +87,6 @@ void reset_ino_dev_hashtable(void) | |
| free(ino_dev_hashtable); | |
| ino_dev_hashtable = NULL; | |
| } | |
| + | #else |
| + | void reset_ino_dev_hashtable(void); |
| #endif | |