Skip to content

Commit e98b4f3

Browse files
addisoncrumpmannubaveja007rmalmainriesentoaster
authored
Fix CI (#3752)
* remove extra portable_simd feature * clang fmt fix * maturin fix * maybe fix QEMU builds * remove support for concolic * delete all concolic * refactor: remove 'Constructor'from various crates (#3763) * refactor: remove 'Constructor'from various crates * refactor: remove obvious 'Constructor' docs from various crates * refactor: resolved various Clippy warnings * fix: clang-format issue (#3758) * fix: clang-format issue * unindent --------- Co-authored-by: Addison <me@addisoncrump.info> * reintroduce z3 dep * mass update * fix docs * debug: add step to check for conflicting deps * missed a spot * defer cache pull until after we've tested the book * fixup frida test * clippy nit * prefer LLVM 21 (compat with stable) over LLVM 18 * fix but better * mark Cargo.lock as machine generated * Use MAIN_LLVM_VERSION to find the correct llvm-config * Allow force disabling pizza mode regardless of the date (#3778) * Allow force disabling pizza mode regardless of the date * Disable pizza mode in CI * fixup remaining bits --------- Co-authored-by: Addison Crump <addison.crump@cispa.de> --------- Co-authored-by: Mannu Baveja <142614912+mannubaveja007@users.noreply.github.com> Co-authored-by: Romain Malmain <romain.malmain@pm.me> Co-authored-by: Valentin Huber <git@valentinhuber.me>
1 parent 53281a7 commit e98b4f3

127 files changed

Lines changed: 32805 additions & 35041 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Cargo.lock linguist-generated=true

.github/workflows/build_and_test.yml

Lines changed: 10 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,10 @@ on:
1111
workflow_dispatch:
1212
merge_group:
1313
env:
14+
AFL_PIZZA_MODE: "-1" # this is sad, I know, but it breaks on a certain spring day otherwise :(
1415
CARGO_TERM_COLOR: always
1516
CARGO_NET_GIT_FETCH_WITH_CLI: true
16-
MAIN_LLVM_VERSION: 18
17+
MAIN_LLVM_VERSION: 21
1718

1819
concurrency:
1920
group: ${{ github.workflow }}-${{ github.ref }}
@@ -50,14 +51,11 @@ jobs:
5051
- name: Install LLVM
5152
if: runner.os == 'MacOS'
5253
run: brew install llvm@${{env.MAIN_LLVM_VERSION}}
53-
- uses: Swatinem/rust-cache@v2
54-
with: { shared-key: "ubuntu" }
55-
if: runner.os == 'Linux'
56-
- uses: Swatinem/rust-cache@v2
57-
if: runner.os != 'Linux'
5854
- name: Check for binary blobs
5955
if: runner.os == 'Linux'
6056
run: just check-blobs
57+
- name: Check for conflicting versions
58+
run: cargo tree -d --workspace
6159
- name: Build libafl debug
6260
run: just build-libafl
6361
- name: Test the book (Linux)
@@ -73,6 +71,12 @@ jobs:
7371
- name: Doc
7472
if: runner.os == 'Linux'
7573
run: just doc
74+
# DO NOT move the cache pull before this point, as it causes mdbook to fail due to duplicated deps
75+
- uses: Swatinem/rust-cache@v2
76+
with: { shared-key: "ubuntu" }
77+
if: runner.os == 'Linux'
78+
- uses: Swatinem/rust-cache@v2
79+
if: runner.os != 'Linux'
7680
- name: Run tests (Windows)
7781
if: runner.os == 'Windows'
7882
run: just test-serial
@@ -189,20 +193,6 @@ jobs:
189193
# `sancov_pcguard_edges` is tested seperatelyc
190194
run: just check-features ${{ matrix.instance_idx }}
191195

192-
# idk why bindgen generates a corrupted file only on CI.
193-
# ubuntu-concolic:
194-
# runs-on: ubuntu-24.04
195-
# needs: ubuntu
196-
# steps:
197-
# - uses: dtolnay/rust-toolchain@stable
198-
# - uses: actions/checkout@v4
199-
# - uses: Swatinem/rust-cache@v2
200-
# with: { shared-key: "ubuntu" }
201-
# - name: Install smoke test deps
202-
# run: sudo ./crates/libafl_concolic/test/smoke_test_ubuntu_deps.sh
203-
# - name: Run smoke test
204-
# run: ./crates/libafl_concolic/test/smoke_test.sh
205-
#
206196
python-bindings:
207197
runs-on: ubuntu-24.04
208198
steps:
@@ -340,7 +330,6 @@ jobs:
340330
# - inprocess/libfuzzer_windows_asan
341331
- inprocess/libfuzzer_stb_image_sugar
342332
- inprocess/libfuzzer_stb_image
343-
- structure_aware/libfuzzer_stb_image_concolic
344333
# - inprocess/sqlite_centralized_multi_machine
345334
# - inprocess/libafl_libfuzzer_windows
346335

.github/workflows/ubuntu-prepare/action.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ runs:
2424
sudo apt-get install -y \
2525
curl lsb-release wget software-properties-common gnupg shellcheck pax-utils \
2626
libsqlite3-dev libpixman-1-dev libc6-dev gcc g++ build-essential libglib2.0-dev
27+
echo "export LLVM_CONFIG_PATH=$(which llvm-config-${{ env.MAIN_LLVM_VERSION }})" | sudo tee -a /etc/environment
2728
2829
# ---------- toolchain selection ----------
2930
- name: Install Rust (stable)

Cargo.toml

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,6 @@ members = [
1111
"crates/libafl_bolts",
1212
"crates/libafl_build",
1313
"crates/libafl_cc",
14-
"crates/libafl_concolic/symcc_libafl",
15-
"crates/libafl_concolic/symcc_runtime",
16-
"crates/libafl_concolic/test/dump_constraints",
17-
"crates/libafl_concolic/test/runtime_test",
1814
"crates/libafl_core",
1915
"crates/libafl_derive",
2016
"crates/libafl_frida",
@@ -68,8 +64,6 @@ exclude = [
6864
"utils/libafl_repo_tools",
6965
"utils/multi_machine_generator",
7066
"utils/noaslr",
71-
# additional crates
72-
"crates/libafl_concolic/test/symcc/util/symcc_fuzzing_helper",
7367
]
7468

7569
[workspace.package]
@@ -109,12 +103,6 @@ serde_anymap = { path = "./crates/serde_anymap", version = "0.16.0", default-fea
109103
shmem_providers = { path = "./crates/shmem_providers", version = "0.16.0", default-features = false }
110104
tuple_list_ex = { path = "./crates/tuple_list_ex", version = "0.16.0", default-features = false }
111105

112-
# Concolic fuzzing crates
113-
dump_constraints = { path = "./crates/libafl_concolic/test/dump_constraints", version = "0.16.0", default-features = false }
114-
runtime_test = { path = "./crates/libafl_concolic/test/runtime_test", version = "0.16.0", default-features = false }
115-
symcc_libafl = { path = "./crates/libafl_concolic/symcc_libafl", version = "0.16.0", default-features = false }
116-
symcc_runtime = { path = "./crates/libafl_concolic/symcc_runtime", version = "0.16.0", default-features = false }
117-
118106
# Utils
119107
build_and_test_fuzzers = { path = "./utils/build_and_test_fuzzers", version = "0.16.0", default-features = false }
120108
construct_automata = { path = "./utils/gramatron/construct_automata", version = "0.16.0", default-features = false }

Justfile

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ check-blobs:
177177
check-toml:
178178
taplo format --check
179179

180-
test-fuzzers: fuzzers-preflight test-os-specific-fuzzers (nop "Baby") (test-fuzzer "./fuzzers/baby/baby_fuzzer_swap_differential") (test-fuzzer "./fuzzers/baby/tutorial") (test-fuzzer "./fuzzers/baby/baby_fuzzer") (nop "./fuzzers/baby/backtrace_baby_fuzzers") (test-fuzzer "./fuzzers/baby/baby_fuzzer_unicode") (test-fuzzer "./fuzzers/baby/baby_fuzzer_minimizing") (test-fuzzer "./fuzzers/baby/backtrace_baby_fuzzers/c_code_with_fork_executor") (test-fuzzer "./fuzzers/baby/backtrace_baby_fuzzers/c_code_with_inprocess_executor") (test-fuzzer "./fuzzers/baby/backtrace_baby_fuzzers/rust_code_with_fork_executor") (test-fuzzer "./fuzzers/baby/backtrace_baby_fuzzers/rust_code_with_inprocess_executor") (test-fuzzer "./fuzzers/baby/backtrace_baby_fuzzers/command_executor") (test-fuzzer "./fuzzers/baby/backtrace_baby_fuzzers/forkserver_executor") (test-fuzzer "./fuzzers/baby/baby_fuzzer_custom_executor") (nop "Binary-only") (test-fuzzer "./fuzzers/binary_only/frida_executable_libpng") (test-fuzzer "./fuzzers/binary_only/frida_libpng") (test-fuzzer "./fuzzers/binary_only/intel_pt_baby_fuzzer") (test-fuzzer "./fuzzers/binary_only/intel_pt_command_executor") (test-fuzzer "./fuzzers/binary_only/tinyinst_simple") (nop "Forkserver") (test-fuzzer "./fuzzers/forkserver/forkserver_simple") (test-fuzzer "./fuzzers/forkserver/forkserver_libafl_cc") (test-fuzzer "./fuzzers/forkserver/fuzzbench_forkserver") (test-fuzzer "./fuzzers/forkserver/fuzzbench_forkserver_cmplog") (test-fuzzer "./fuzzers/forkserver/fuzzbench_forkserver_sand") (test-fuzzer "./fuzzers/forkserver/libafl-fuzz") (test-fuzzer "./fuzzers/forkserver/baby_fuzzer_with_forkexecutor") (nop "Full-system") (test-fuzzer "./fuzzers/full_system/nyx_launcher") (test-fuzzer "./fuzzers/full_system/nyx_libxml2_standalone") (test-fuzzer "./fuzzers/full_system/nyx_libxml2_parallel") (test-fuzzer "./fuzzers/full_system/unicorn") (nop "Structure-aware") (test-fuzzer "./fuzzers/structure_aware/nautilus_sync") (test-fuzzer "./fuzzers/structure_aware/baby_fuzzer_grimoire") (test-fuzzer "./fuzzers/structure_aware/baby_fuzzer_gramatron") (test-fuzzer "./fuzzers/structure_aware/baby_fuzzer_tokens") (test-fuzzer "./fuzzers/structure_aware/baby_fuzzer_multi") (test-fuzzer "./fuzzers/structure_aware/baby_fuzzer_custom_input") (test-fuzzer "./fuzzers/structure_aware/baby_fuzzer_nautilus") (test-fuzzer "./fuzzers/structure_aware/forkserver_simple_nautilus") (nop "In-process") (test-fuzzer "./fuzzers/fuzz_anything/cargo_fuzz") (test-fuzzer "./fuzzers/inprocess/fuzzbench") (test-fuzzer "./fuzzers/inprocess/fuzzbench_text") (test-fuzzer "./fuzzers/inprocess/fuzzbench_ctx") (test-fuzzer "./fuzzers/inprocess/libfuzzer_libmozjpeg") (test-fuzzer "./fuzzers/inprocess/libfuzzer_libpng") (test-fuzzer "./fuzzers/inprocess/libfuzzer_libpng_launcher") (test-fuzzer "./fuzzers/inprocess/libfuzzer_libpng_accounting") (test-fuzzer "./fuzzers/inprocess/libfuzzer_libpng_centralized") (test-fuzzer "./fuzzers/inprocess/libfuzzer_libpng_cmin") (test-fuzzer "./fuzzers/inprocess/libfuzzer_libpng_norestart") (nop "./fuzzers/inprocess/libfuzzer_libpng_tcp_manager") (test-fuzzer "./fuzzers/inprocess/libfuzzer_stb_image_sugar") (test-fuzzer "./fuzzers/inprocess/libfuzzer_stb_image") (nop "./fuzzers/structure_aware/libfuzzer_stb_image_concolic") (nop "./fuzzers/inprocess/sqlite_centralized_multi_machine") (nop "Fuzz Anything") (test-fuzzer "./fuzzers/fuzz_anything/push_harness") (test-fuzzer "./fuzzers/fuzz_anything/push_stage_harness") (test-fuzzer "./fuzzers/fuzz_anything/libafl_atheris") (test-fuzzer "./fuzzers/fuzz_anything/baby_no_std") (test-fuzzer "./fuzzers/fuzz_anything/baby_fuzzer_wasm")
180+
test-fuzzers: fuzzers-preflight test-os-specific-fuzzers (nop "Baby") (test-fuzzer "./fuzzers/baby/baby_fuzzer_swap_differential") (test-fuzzer "./fuzzers/baby/tutorial") (test-fuzzer "./fuzzers/baby/baby_fuzzer") (nop "./fuzzers/baby/backtrace_baby_fuzzers") (test-fuzzer "./fuzzers/baby/baby_fuzzer_unicode") (test-fuzzer "./fuzzers/baby/baby_fuzzer_minimizing") (test-fuzzer "./fuzzers/baby/backtrace_baby_fuzzers/c_code_with_fork_executor") (test-fuzzer "./fuzzers/baby/backtrace_baby_fuzzers/c_code_with_inprocess_executor") (test-fuzzer "./fuzzers/baby/backtrace_baby_fuzzers/rust_code_with_fork_executor") (test-fuzzer "./fuzzers/baby/backtrace_baby_fuzzers/rust_code_with_inprocess_executor") (test-fuzzer "./fuzzers/baby/backtrace_baby_fuzzers/command_executor") (test-fuzzer "./fuzzers/baby/backtrace_baby_fuzzers/forkserver_executor") (test-fuzzer "./fuzzers/baby/baby_fuzzer_custom_executor") (nop "Binary-only") (test-fuzzer "./fuzzers/binary_only/frida_executable_libpng") (test-fuzzer "./fuzzers/binary_only/frida_libpng") (test-fuzzer "./fuzzers/binary_only/intel_pt_baby_fuzzer") (test-fuzzer "./fuzzers/binary_only/intel_pt_command_executor") (test-fuzzer "./fuzzers/binary_only/tinyinst_simple") (nop "Forkserver") (test-fuzzer "./fuzzers/forkserver/forkserver_simple") (test-fuzzer "./fuzzers/forkserver/forkserver_libafl_cc") (test-fuzzer "./fuzzers/forkserver/fuzzbench_forkserver") (test-fuzzer "./fuzzers/forkserver/fuzzbench_forkserver_cmplog") (test-fuzzer "./fuzzers/forkserver/fuzzbench_forkserver_sand") (test-fuzzer "./fuzzers/forkserver/libafl-fuzz") (test-fuzzer "./fuzzers/forkserver/baby_fuzzer_with_forkexecutor") (nop "Full-system") (test-fuzzer "./fuzzers/full_system/nyx_launcher") (test-fuzzer "./fuzzers/full_system/nyx_libxml2_standalone") (test-fuzzer "./fuzzers/full_system/nyx_libxml2_parallel") (test-fuzzer "./fuzzers/full_system/unicorn") (nop "Structure-aware") (test-fuzzer "./fuzzers/structure_aware/nautilus_sync") (test-fuzzer "./fuzzers/structure_aware/baby_fuzzer_grimoire") (test-fuzzer "./fuzzers/structure_aware/baby_fuzzer_gramatron") (test-fuzzer "./fuzzers/structure_aware/baby_fuzzer_tokens") (test-fuzzer "./fuzzers/structure_aware/baby_fuzzer_multi") (test-fuzzer "./fuzzers/structure_aware/baby_fuzzer_custom_input") (test-fuzzer "./fuzzers/structure_aware/baby_fuzzer_nautilus") (test-fuzzer "./fuzzers/structure_aware/forkserver_simple_nautilus") (nop "In-process") (test-fuzzer "./fuzzers/fuzz_anything/cargo_fuzz") (test-fuzzer "./fuzzers/inprocess/fuzzbench") (test-fuzzer "./fuzzers/inprocess/fuzzbench_text") (test-fuzzer "./fuzzers/inprocess/fuzzbench_ctx") (test-fuzzer "./fuzzers/inprocess/libfuzzer_libmozjpeg") (test-fuzzer "./fuzzers/inprocess/libfuzzer_libpng") (test-fuzzer "./fuzzers/inprocess/libfuzzer_libpng_launcher") (test-fuzzer "./fuzzers/inprocess/libfuzzer_libpng_accounting") (test-fuzzer "./fuzzers/inprocess/libfuzzer_libpng_centralized") (test-fuzzer "./fuzzers/inprocess/libfuzzer_libpng_cmin") (test-fuzzer "./fuzzers/inprocess/libfuzzer_libpng_norestart") (nop "./fuzzers/inprocess/libfuzzer_libpng_tcp_manager") (test-fuzzer "./fuzzers/inprocess/libfuzzer_stb_image_sugar") (test-fuzzer "./fuzzers/inprocess/libfuzzer_stb_image") (nop "./fuzzers/inprocess/sqlite_centralized_multi_machine") (nop "Fuzz Anything") (test-fuzzer "./fuzzers/fuzz_anything/push_harness") (test-fuzzer "./fuzzers/fuzz_anything/push_stage_harness") (test-fuzzer "./fuzzers/fuzz_anything/libafl_atheris") (test-fuzzer "./fuzzers/fuzz_anything/baby_no_std") (test-fuzzer "./fuzzers/fuzz_anything/baby_fuzzer_wasm")
181181

182182
# Windows-specific cmplog test
183183
[windows]
@@ -257,18 +257,13 @@ build-ios:
257257
increase-mem-limits:
258258
{{ SCRIPTS_DIR }}/shmem_limits_macos.sh
259259

260-
# Run Smoketest for the libafl concolic executor
261-
[linux]
262-
concolic-smoke-test:
263-
{{ ROOT_DIR }}/libafl_concolic/test/smoke_test.sh
264-
265260
[unix]
266261
test-repro-qemu-tmin:
267262
cd {{ FUZZERS_DIR }}/binary_only/qemu_tmin && ./repro
268263

269264
# Tests everything (crates, fuzzers, docs, repro)
270265
[linux]
271-
test-all: test test-fuzzers test-docs test-repro-qemu-tmin concolic-smoke-test doc
266+
test-all: test test-fuzzers test-docs test-repro-qemu-tmin doc
272267

273268
# Tests everything (crates, fuzzers, docs, repro)
274269
[macos]

README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ feel free to add an AST-based input for structured fuzzing, and more.
3838
```
3939
- **LLVM tools**
4040
- The LLVM tools (including clang, clang++) are needed (newer than LLVM 15.0.0 up to LLVM 18.1.3) If you are using Debian/Ubuntu, again, we highly recommmend that you install the package from [here](https://apt.llvm.org/)
41-
- (In `libafl_concolic`, we only support LLVM version newer than 18)
4241
- Just:
4342
- We use [just](https://github.com/casey/just) to build the fuzzers in `fuzzers/` directory. You can find instructions to install it in your environment [in the Just Programmer's Manual](https://just.systems/man/en/packages.html).
4443

bindings/pylibafl/pyproject.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,4 @@ repository = "https://github.com/AFLplusplus/LibAFL.git"
2222
[tool.maturin]
2323
bindings = "pyo3"
2424
manifest-path = "Cargo.toml"
25-
python-source = "src"
2625
all-features = true

crates/README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ This directory contains the various crates that make up the LibAFL ecosystem. He
1111

1212
## Backends & Instrumentation
1313

14-
- **[libafl_concolic](./libafl_concolic)**: Concolic execution related crates (SymCC integration).
1514
- **[libafl_frida](./libafl_frida)**: Frida backend library for LibAFL.
1615
- **[libafl_intelpt](./libafl_intelpt)**: Intel Processor Trace wrapper for libafl.
1716
- **[libafl_nyx](./libafl_nyx)**: libafl using nyx, only avaliable on linux.

crates/fast_rands/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,7 @@ pub trait SubRng {
294294

295295
impl<R> SubRng for R
296296
where
297-
R: Rand + Sized + Clone
297+
R: Rand + Sized + Clone,
298298
{
299299
/// Creates and returns a sub-RNG.
300300
fn sub_rng(&mut self) -> Self {

crates/libafl/Cargo.toml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ intel_pt = ["std", "dep:libafl_intelpt", "dep:nix", "dep:num_enum"]
121121
intel_pt_export_raw = ["intel_pt", "libafl_intelpt/export_raw"]
122122

123123
## Enables features for corpus minimization
124-
cmin = ["z3"]
124+
cmin = ["dep:z3"]
125125

126126
## Enables the `PrometheusMonitor` which will monitor stats via UDP, for `Grafana` and others.
127127
prometheus_monitor = [
@@ -135,9 +135,6 @@ prometheus_monitor = [
135135
## Enables the `StatsdMonitor`.
136136
statsd_monitor = ["std", "cadence"]
137137

138-
## Include a simple concolic mutator based on z3
139-
concolic_mutation = ["z3"]
140-
141138
## Enable the fancy TuiMonitor for a termanal UI using crossterm
142139
tui_monitor = ["ratatui", "crossterm"]
143140

@@ -291,7 +288,7 @@ wait-timeout = { version = "0.2.0", optional = true } # used by CommandExecutor
291288
regex = { workspace = true, optional = true }
292289
regex-syntax = { version = "0.8.4", optional = true } # For nautilus
293290

294-
z3 = { workspace = true, optional = true } # for concolic mutation
291+
z3 = { workspace = true, optional = true } # for corpus minimization
295292

296293
# optional-dev deps (change when target.'cfg(accessible(::std))'.test-dependencies will be stable)
297294
serial_test = { workspace = true, optional = true, default-features = false, features = [

0 commit comments

Comments
 (0)