Findings
correctness
crates/ergasia/src/extract/pipeline.rs:182 — calculate_archive_size returns 0 on read_dir failure, making the disk check trivially pass (low)
resilience
crates/ergasia/src/extract/seven_zip.rs:31 — collect_files recurses into subdirectories without depth limit, enabling stack overflow from crafted 7z archive (low)
crates/ergasia/src/session.rs:184 — Concurrent delete_torrent calls for the same DownloadId race and produce a mislabelled error (low)
testing
crates/ergasia/src/extract/rar.rs:66 — extract_rar actual extraction logic is untested; only volume-detection is covered (low)
crates/ergasia/src/extract/seven_zip.rs:6 — extract_7z (and its collect_files traversal) has zero tests (low)
crates/ergasia/src/session.rs:34 — TorrentSession — all download-management methods have zero tests (low)
Note
These are batched low/info findings; split any out if it gets prioritized.
Findings
correctness
crates/ergasia/src/extract/pipeline.rs:182—calculate_archive_sizereturns 0 onread_dirfailure, making the disk check trivially pass (low)resilience
crates/ergasia/src/extract/seven_zip.rs:31— collect_files recurses into subdirectories without depth limit, enabling stack overflow from crafted 7z archive (low)crates/ergasia/src/session.rs:184— Concurrentdelete_torrentcalls for the sameDownloadIdrace and produce a mislabelled error (low)testing
crates/ergasia/src/extract/rar.rs:66—extract_raractual extraction logic is untested; only volume-detection is covered (low)crates/ergasia/src/extract/seven_zip.rs:6—extract_7z(and itscollect_filestraversal) has zero tests (low)crates/ergasia/src/session.rs:34—TorrentSession— all download-management methods have zero tests (low)Note
These are batched low/info findings; split any out if it gets prioritized.