From ae2caff9901c71d76e778141a97d547a24aa719f Mon Sep 17 00:00:00 2001 From: "Dongjia \"toka\" Zhang" Date: Fri, 24 Mar 2023 01:53:42 +0900 Subject: [PATCH] Revert "Fix testcase set_filename (#1092)" (#1175) This reverts commit a659dd821c484c4e0524d0a2bf88023dae5e259b. --- libafl/src/corpus/inmemory_ondisk.rs | 10 +++--- libafl/src/corpus/testcase.rs | 49 +--------------------------- 2 files changed, 5 insertions(+), 54 deletions(-) diff --git a/libafl/src/corpus/inmemory_ondisk.rs b/libafl/src/corpus/inmemory_ondisk.rs index 818a2d0ca8..d70fe2eb19 100644 --- a/libafl/src/corpus/inmemory_ondisk.rs +++ b/libafl/src/corpus/inmemory_ondisk.rs @@ -221,6 +221,7 @@ where let mut ctr = 2; let filename = loop { let lockfile = format!(".{file}.lafl_lock"); + // try to create lockfile. if OpenOptions::new() .write(true) @@ -228,18 +229,15 @@ where .open(self.dir_path.join(lockfile)) .is_ok() { - break file; + break self.dir_path.join(file); } file = format!("{file_orig}-{ctr}"); ctr += 1; }; - let file_path = self.dir_path.join(filename.clone()); - let filename_str = file_path.to_str().expect("Invalid Path"); - testcase.set_filename(filename_str.into())?; - - fs::remove_file(format!(".{filename}.lafl_lock"))?; + let filename_str = filename.to_str().expect("Invalid Path"); + testcase.set_filename(filename_str.into()); }; if self.meta_format.is_some() { let mut filename = PathBuf::from(testcase.filename().as_ref().unwrap()); diff --git a/libafl/src/corpus/testcase.rs b/libafl/src/corpus/testcase.rs index 5f5ee25767..16d62fbbfd 100644 --- a/libafl/src/corpus/testcase.rs +++ b/libafl/src/corpus/testcase.rs @@ -8,8 +8,6 @@ use core::{ option::Option, time::Duration, }; -#[cfg(feature = "std")] -use std::fs; use serde::{Deserialize, Serialize}; @@ -146,53 +144,8 @@ where /// Set the filename #[inline] - #[cfg(feature = "std")] - pub fn set_filename(&mut self, filename: String) -> Result<(), Error> { - use std::fs::OpenOptions; - - if self.filename.is_some() { - let f = self.filename.clone().unwrap(); - let old_filename = f.as_str(); - - let new_filename = filename.as_str(); - - // Do operations below when new filename is specified - if old_filename.eq(new_filename) { - return Ok(()); - } - - let new_lock_filename = format!(".{new_filename}.lafl_lock"); - - // Try to create lock file for new testcases - if OpenOptions::new() - .create(true) - .write(true) - .open(&new_lock_filename) - .is_err() - { - return Err(Error::illegal_state( - "unable to create lock file for new testcase", - )); - } - - fs::rename(old_filename, new_filename)?; - - let old_metadata_filename = format!(".{old_filename}.metadata"); - let new_metadata_filename = format!(".{new_filename}.metadata"); - fs::rename(old_metadata_filename, new_metadata_filename)?; - - fs::remove_file(&new_lock_filename)?; - } - - self.filename = Some(filename); - Ok(()) - } - - #[inline] - #[cfg(feature = "no_std")] - pub fn set_filename(&mut self, filename: String) -> Result<(), Error> { + pub fn set_filename(&mut self, filename: String) { self.filename = Some(filename); - Ok(()) } /// Get the execution time of the testcase