Skip to content

Commit f0c6e37

Browse files
committed
switched to typed_builder
1 parent 234a331 commit f0c6e37

File tree

3 files changed

+19
-26
lines changed

3 files changed

+19
-26
lines changed

libafl/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ harness = false
3737

3838
[features]
3939
default = ["std", "anymap_debug", "derive", "llmp_compression"]
40-
std = ["derive_builder"] # print, sharedmap, ... support
40+
std = [] # print, env, launcher ... support
4141
anymap_debug = ["serde_json"] # uses serde_json to Debug the anymap trait. Disable for smaller footprint.
4242
derive = ["libafl_derive"] # provide derive(SerdeAny) macro.
4343
llmp_small_maps = [] # reduces initial map size for llmp
@@ -66,7 +66,7 @@ compression = { version = "0.1.5" }
6666
core_affinity = { version = "0.5", git = "https://github.com/s1341/core_affinity_rs" }
6767
num_enum = "0.5.1"
6868
hostname = "^0.3" # Is there really no gethostname in the stdlib?
69-
derive_builder = { version="0.10", optional = true }
69+
typed-builder = "0.9.0"
7070

7171
[target.'cfg(target_os = "android")'.dependencies]
7272
backtrace = { version = "0.3", optional = true, default-features = false, features = ["std", "libbacktrace"] } # for llmp_debug

libafl/src/events/llmp.rs

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,7 @@ use crate::utils::{fork, ForkResult};
4848
#[cfg(all(target_os = "android", feature = "std"))]
4949
use crate::bolts::os::ashmem_server::AshmemService;
5050

51-
#[cfg(feature = "std")]
52-
use derive_builder::Builder;
51+
use typed_builder::TypedBuilder;
5352

5453
/// Forward this to the client
5554
const _LLMP_TAG_EVENT_TO_CLIENT: llmp::Tag = 0x2C11E471;
@@ -580,12 +579,11 @@ where
580579
#[cfg(target_os = "android")]
581580
AshmemService::start().expect("Error starting Ashmem Service");
582581

583-
RestartingMgrBuilder::default()
582+
RestartingMgr::builder()
584583
.shmem_provider(StdShMemProvider::new()?)
585584
.stats(stats)
586585
.broker_port(broker_port)
587586
.build()
588-
.unwrap()
589587
.launch()
590588
}
591589

@@ -594,8 +592,7 @@ where
594592
/// `restarter` will start a new process each time the child crashes or times out.
595593
#[cfg(feature = "std")]
596594
#[allow(clippy::default_trait_access)]
597-
#[derive(Builder, Debug)]
598-
#[builder(pattern = "owned")]
595+
#[derive(TypedBuilder, Debug)]
599596
pub struct RestartingMgr<I, S, SP, ST>
600597
where
601598
I: Input,
@@ -609,15 +606,15 @@ where
609606
/// The stats to use
610607
stats: ST,
611608
/// The broker port to use
612-
#[builder(default = "1337")]
609+
#[builder(default = 1337_u16)]
613610
broker_port: u16,
614611
/// The address to connect to
615-
#[builder(default = "Option::None")]
612+
#[builder(default = None)]
616613
remote_broker_addr: Option<SocketAddr>,
617614
/// The type of manager to build
618-
#[builder(default = "ManagerKind::Any")]
615+
#[builder(default = ManagerKind::Any)]
619616
kind: ManagerKind,
620-
#[builder(setter(skip))]
617+
#[builder(setter(skip), default = PhantomData {})]
621618
_phantom: PhantomData<(I, S)>,
622619
}
623620

libafl/src/utils.rs

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ use xxhash_rust::xxh3::xxh3_64_with_seed;
1818
use serde::{de::DeserializeOwned, Deserialize, Serialize};
1919

2020
#[cfg(feature = "std")]
21-
use crate::events::llmp::RestartingMgrBuilder;
21+
use crate::events::llmp::RestartingMgr;
2222

2323
#[cfg(unix)]
2424
use libc::pid_t;
@@ -40,8 +40,7 @@ use core_affinity::CoreId;
4040
#[cfg(all(windows, feature = "std"))]
4141
use std::process::Stdio;
4242

43-
#[cfg(feature = "std")]
44-
use derive_builder::Builder;
43+
use typed_builder::TypedBuilder;
4544

4645
/// Can be converted to a slice
4746
pub trait AsSlice<T> {
@@ -601,9 +600,8 @@ mod tests {
601600

602601
/// Provides a Launcher, which can be used to launch a fuzzing run on a specified list of cores
603602
#[cfg(feature = "std")]
604-
#[derive(Builder)]
603+
#[derive(TypedBuilder)]
605604
#[allow(clippy::type_complexity)]
606-
#[builder(pattern = "owned")]
607605
pub struct Launcher<'a, I, S, SP, ST>
608606
where
609607
I: Input,
@@ -621,16 +619,16 @@ where
621619
run_client:
622620
&'a mut dyn FnMut(Option<S>, LlmpRestartingEventManager<I, S, SP, ST>) -> Result<(), Error>,
623621
/// The broker port to use
624-
#[builder(default = "1337")]
622+
#[builder(default = 1337_u16)]
625623
broker_port: u16,
626624
/// The list of cores to run on
627625
cores: &'a [usize],
628626
/// A file name to write all client output to
629-
#[builder(default = "None")]
627+
#[builder(default = None)]
630628
stdout_file: Option<&'a str>,
631629
/// The `ip:port` address of another broker to connect our new broker to for multi-machine
632630
/// clusters.
633-
#[builder(default = "None")]
631+
#[builder(default = None)]
634632
remote_broker_addr: Option<SocketAddr>,
635633
}
636634

@@ -679,15 +677,14 @@ where
679677
}
680678
//fuzzer client. keeps retrying the connection to broker till the broker starts
681679
let stats = (self.client_init_stats)()?;
682-
let (state, mgr) = RestartingMgrBuilder::default()
680+
let (state, mgr) = RestartingMgr::builder()
683681
.shmem_provider(self.shmem_provider.clone())
684682
.stats(stats)
685683
.broker_port(self.broker_port)
686684
.kind(ManagerKind::Client {
687685
cpu_core: Some(*bind_to),
688686
})
689687
.build()
690-
.unwrap()
691688
.launch()?;
692689

693690
(self.run_client)(state, mgr)?;
@@ -699,14 +696,13 @@ where
699696
#[cfg(feature = "std")]
700697
println!("I am broker!!.");
701698

702-
RestartingMgrBuilder::<I, S, SP, ST>::default()
699+
RestartingMgr::<I, S, SP, ST>::builder()
703700
.shmem_provider(self.shmem_provider.clone())
704701
.stats(self.stats.clone())
705702
.broker_port(self.broker_port)
706703
.kind(ManagerKind::Broker)
707704
.remote_broker_addr(self.remote_broker_addr)
708705
.build()
709-
.unwrap()
710706
.launch()?;
711707

712708
//broker exited. kill all clients.
@@ -731,7 +727,7 @@ where
731727

732728
// the actual client. do the fuzzing
733729
let stats = (self.client_init_stats)()?;
734-
let (state, mgr) = RestartingMgrBuilder::<I, S, SP, ST>::default()
730+
let (state, mgr) = RestartingMgr::<I, S, SP, ST>::builder()
735731
.shmem_provider(self.shmem_provider.clone())
736732
.stats(stats)
737733
.broker_port(self.broker_port)
@@ -789,7 +785,7 @@ where
789785
#[cfg(feature = "std")]
790786
println!("I am broker!!.");
791787

792-
RestartingMgrBuilder::<I, S, SP, ST>::default()
788+
RestartingMgr::<I, S, SP, ST>::builder()
793789
.shmem_provider(self.shmem_provider.clone())
794790
.stats(self.stats.clone())
795791
.broker_port(self.broker_port)

0 commit comments

Comments
 (0)