Compare commits

...

1 Commits

Author SHA1 Message Date
TapTap e971af2326 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
2026-07-21 18:16:45 +02:00
+6 -4
View File
@@ -138,10 +138,12 @@ Chunk* directory_scanner_next(DirectoryScanner* scanner) {
if (S_ISDIR(stats.st_mode)) { if (S_ISDIR(stats.st_mode)) {
int next_depth = scanner->current_depth + 1; int next_depth = scanner->current_depth + 1;
if (scanner->max_depth <= 0 || next_depth < scanner->max_depth) if (scanner->max_depth <= 0 || next_depth < scanner->max_depth) {
queue_enqueue(scanner->directories, dir_entry_create(cur_path, next_depth)); DirEntry* de = dir_entry_create(cur_path, next_depth);
else if (!queue_enqueue(scanner->directories, de))
free(cur_path); dir_entry_destroy(de);
}
free(cur_path);
} else { } else {
if (scanner->max_depth > 0 && scanner->current_depth + 1 > scanner->max_depth) { if (scanner->max_depth > 0 && scanner->current_depth + 1 > scanner->max_depth) {
free(cur_path); free(cur_path);