Skip to content

Commit 5beb73d

Browse files
committed
Fix for macOS
1 parent 059efd6 commit 5beb73d

File tree

3 files changed

+19
-9
lines changed

3 files changed

+19
-9
lines changed

Cargo.toml

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,28 @@ rust-version = "1.87"
66
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
77

88
[dependencies]
9-
libafl_targets = { version = "0.15.3", features = [
9+
# For macOS autotokens fix
10+
libafl_targets = { git = "https://github.com/AFLplusplus/LibAFL", rev = "c604d2dac47e84b7133e85cfd137acf2d6e0175b", features = [
1011
"pointer_maps",
1112
"forkserver",
1213
"cmplog",
1314
"cmplog_extended_instrumentation",
1415
] }
15-
libafl = "0.15.3"
16-
libafl_bolts = "0.15.3"
16+
libafl = { git = "https://github.com/AFLplusplus/LibAFL", rev = "c604d2dac47e84b7133e85cfd137acf2d6e0175b" }
17+
libafl_bolts = { git = "https://github.com/AFLplusplus/LibAFL", rev = "c604d2dac47e84b7133e85cfd137acf2d6e0175b" }
18+
# libafl_targets = { path = "../LibAFL/libafl_targets", features = [
19+
# "pointer_maps",
20+
# "forkserver",
21+
# "cmplog",
22+
# "cmplog_extended_instrumentation",
23+
# ] }
24+
# libafl = {path = "../LibAFL/libafl"}
25+
# libafl_bolts = {path = "../LibAFL/libafl_bolts"}
1726

1827
serde = { version = "1.0", features = ["derive"] }
1928
unicorn-engine = { git = "https://github.com/unicorn-engine/unicorn", branch = "dev" }
2029
log = "0.4"
21-
nix = { version = "0.29", features = ["signal"] }
30+
nix = { version = "0.30", features = ["signal"] }
2231
env_logger = { version = "0.11", optional = true }
2332
pyo3 = { version = "0.24.0", features = [
2433
"extension-module",

src/forkserver.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use std::{
22
io::{PipeReader, PipeWriter},
3-
os::fd::{AsFd, AsRawFd},
3+
os::fd::AsFd,
44
};
55

66
use libafl_bolts::os::{ChildHandle, ForkResult};
@@ -29,8 +29,8 @@ pub(crate) fn write_u64_to_fd(fd: impl AsFd, message: u64) -> Result<(), uc_afl_
2929
}
3030

3131
fn read_from_fd(fd: impl AsFd, message: &mut [u8]) -> Result<(), uc_afl_ret> {
32-
let bytes_read = nix::unistd::read(fd.as_fd().as_raw_fd(), message)
33-
.map_err(|_| uc_afl_ret::UC_AFL_RET_ERROR)?;
32+
let bytes_read =
33+
nix::unistd::read(fd.as_fd(), message).map_err(|_| uc_afl_ret::UC_AFL_RET_ERROR)?;
3434
if bytes_read != message.len() {
3535
return Err(uc_afl_ret::UC_AFL_RET_ERROR);
3636
}

src/target.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use std::path::PathBuf;
22

3-
use libafl_bolts::shmem::{ShMemProvider, StdShMemProvider};
3+
use libafl_bolts::shmem::{ShMemProvider, UnixShMemProvider};
44
use libafl_targets::{__afl_map_size, EDGES_MAP_PTR, SHM_FUZZING, cmps::CMPLOG_ENABLED};
55
use log::{debug, error, trace, warn};
66
use unicorn_engine::{Arch, RegisterARM, Unicorn, uc_error};
@@ -58,8 +58,9 @@ pub fn child_fuzz<'a, D: 'a>(
5858
trace!("{:?}={:?}", env, val);
5959
}
6060

61-
let mut shmem_provider = StdShMemProvider::new()?;
61+
let mut shmem_provider = UnixShMemProvider::new()?;
6262

63+
trace!("Mapping both input shm and coverage shm...");
6364
let has_afl = libafl_targets::map_input_shared_memory(&mut shmem_provider).is_ok()
6465
&& libafl_targets::map_shared_memory(&mut shmem_provider).is_ok();
6566

0 commit comments

Comments
 (0)