Skip to content

Commit 76292bf

Browse files
committed
fixup! Attempt to fix remove_dir: collect file names before rename
1 parent 2d05b65 commit 76292bf

1 file changed

Lines changed: 13 additions & 7 deletions

File tree

  • delete-nonreduced-fuzz-inputs/src

delete-nonreduced-fuzz-inputs/src/main.rs

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -484,13 +484,19 @@ fn run_afl_cmin<P: AsRef<Path>, Q: AsRef<Path>>(
484484

485485
/// Move every file in `dir` to its parent directory.
486486
fn move_files_to_parent_dir(dir: &PathBuf) -> AppResult {
487-
for entry in fs::read_dir(dir).map_err(|e| format!("fs::read_dir failed: {}", e.to_string()))? {
488-
let entry = entry.map_err(|e| format!("failed to read entry: {}", e.to_string()))?;
489-
let from = entry.path();
490-
let to = dir
491-
.parent()
492-
.ok_or_else(|| format!("expected {} to have parent", from.display()))?
493-
.join(entry.file_name());
487+
let names: Vec<_> = fs::read_dir(dir)
488+
.map_err(|e| format!("fs::read_dir failed: {}", e.to_string()))?
489+
.map(|e| e.map(|e| e.file_name()))
490+
.collect::<Result<_, _>>()
491+
.map_err(|e| format!("failed to read entry: {}", e.to_string()))?;
492+
493+
let parent = dir
494+
.parent()
495+
.ok_or_else(|| format!("expected {} to have parent", dir.display()))?;
496+
497+
for name in names {
498+
let from = dir.join(&name);
499+
let to = parent.join(&name);
494500
fs::rename(&from, &to).map_err(|e| format!("fs::rename failed: {}", e.to_string()))?;
495501
}
496502

0 commit comments

Comments
 (0)