fix: scanner cur_path leak when directory enqueued (ASan)
CI / lint (pull_request) Successful in 12s
CI / sanitizers (address) (pull_request) Successful in 14s
CI / sanitizers (undefined) (pull_request) Successful in 16s
CI / fuzz-build (pull_request) Successful in 15s
CI / coverage (pull_request) Successful in 10s
CI / valgrind (pull_request) Successful in 12s
CI / build-and-test (pull_request) Successful in 54s

This commit is contained in:
2026-07-21 18:16:37 +02:00
parent d21f6c8be9
commit e971af2326
+6 -4
View File
@@ -138,10 +138,12 @@ Chunk* directory_scanner_next(DirectoryScanner* scanner) {
if (S_ISDIR(stats.st_mode)) {
int next_depth = scanner->current_depth + 1;
if (scanner->max_depth <= 0 || next_depth < scanner->max_depth)
queue_enqueue(scanner->directories, dir_entry_create(cur_path, next_depth));
else
free(cur_path);
if (scanner->max_depth <= 0 || next_depth < scanner->max_depth) {
DirEntry* de = dir_entry_create(cur_path, next_depth);
if (!queue_enqueue(scanner->directories, de))
dir_entry_destroy(de);
}
free(cur_path);
} else {
if (scanner->max_depth > 0 && scanner->current_depth + 1 > scanner->max_depth) {
free(cur_path);