Skip to content

Commit

Permalink
Simplify copy_afl_llvm_plugins
Browse files Browse the repository at this point in the history
  • Loading branch information
smoelius committed Nov 11, 2023
1 parent 785db30 commit 0d868e2
Showing 1 changed file with 13 additions and 21 deletions.
34 changes: 13 additions & 21 deletions cargo-afl/build.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
use std::env;
use std::ffi::OsStr;
use std::path::{Path, PathBuf};
use std::process::Command;

Expand Down Expand Up @@ -109,28 +110,19 @@ fn build_afl_llvm_runtime(work_dir: &Path, base: Option<&Path>) {

fn copy_afl_llvm_plugins(work_dir: &Path, base: Option<&Path>) {
// Iterate over the files in the directory.
if let Ok(entries) = work_dir.read_dir() {
for entry in entries.flatten() {
let file_name = entry.file_name();
let file_name_str = file_name.to_string_lossy();

// Get the file extension.
if let Some(extension) = file_name_str.split('.').last() {
// Only copy the files that are shared objects
if extension == "so" {
// Attempt to copy the shared object file.
std::fs::copy(
work_dir.join(&file_name),
common::afl_llvm_dir(base).join(&file_name),
)
.unwrap_or_else(|_| {
panic!("Couldn't copy shared object file {file_name_str}",)
});
}
}
for result in work_dir.read_dir().unwrap() {
let entry = result.unwrap();
let path = entry.path();

// Get the file extension.
// Only copy the files that are shared objects
if path.extension() == Some(OsStr::new("so")) {
let relative_path = path.strip_prefix(work_dir).unwrap();
// Attempt to copy the shared object file.
std::fs::copy(&path, common::afl_llvm_dir(base).join(&relative_path)).unwrap_or_else(
|error| panic!("Couldn't copy shared object file {path:?}: {error}"),
);
}
} else {
eprintln!("Failed to read the work directory. Aborting.");
}
}

Expand Down

0 comments on commit 0d868e2

Please sign in to comment.