Skip to content

Commit

Permalink
Revert "Fix testcase set_filename (#1092)" (#1175)
Browse files Browse the repository at this point in the history
This reverts commit a659dd8.
  • Loading branch information
tokatoka committed Mar 23, 2023
1 parent 620b286 commit ae2caff
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 54 deletions.
10 changes: 4 additions & 6 deletions libafl/src/corpus/inmemory_ondisk.rs
Original file line number Diff line number Diff line change
Expand Up @@ -221,25 +221,23 @@ where
let mut ctr = 2;
let filename = loop {
let lockfile = format!(".{file}.lafl_lock");
// try to create lockfile.

if OpenOptions::new()
.write(true)
.create_new(true)
.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());
Expand Down
49 changes: 1 addition & 48 deletions libafl/src/corpus/testcase.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@ use core::{
option::Option,
time::Duration,
};
#[cfg(feature = "std")]
use std::fs;

use serde::{Deserialize, Serialize};

Expand Down Expand Up @@ -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
Expand Down

0 comments on commit ae2caff

Please sign in to comment.