Skip to content

Commit 34d1aa4

Browse files
committed
Use libfuzzer instead of honggfuzz
1 parent 39d488b commit 34d1aa4

Some content is hidden

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

44 files changed

+495
-1239
lines changed

.github/docker/Dockerfile.s390x

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
FROM ubuntu:24.04
2+
3+
# Install newer cross-compilation toolchain
4+
RUN apt-get update && \
5+
apt-get install -y --no-install-recommends \
6+
gcc-13-s390x-linux-gnu \
7+
g++-13-s390x-linux-gnu \
8+
libc6-dev-s390x-cross \
9+
qemu-user \
10+
curl \
11+
ca-certificates && \
12+
rm -rf /var/lib/apt/lists/*
13+
14+
# Set up alternatives to use GCC 13 by default
15+
RUN update-alternatives --install /usr/bin/s390x-linux-gnu-gcc s390x-linux-gnu-gcc /usr/bin/s390x-linux-gnu-gcc-13 100 && \
16+
update-alternatives --install /usr/bin/s390x-linux-gnu-g++ s390x-linux-gnu-g++ /usr/bin/s390x-linux-gnu-g++-13 100
17+
18+
# Verify GCC version
19+
RUN s390x-linux-gnu-gcc --version && s390x-linux-gnu-g++ --version
20+
21+
# Install Rust
22+
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal
23+
ENV PATH="/root/.cargo/bin:${PATH}"
24+
RUN rustup target add s390x-unknown-linux-gnu
25+
26+
# Set up cross-compilation environment
27+
ENV CARGO_TARGET_S390X_UNKNOWN_LINUX_GNU_LINKER=s390x-linux-gnu-gcc \
28+
CC_s390x_unknown_linux_gnu=s390x-linux-gnu-gcc \
29+
CXX_s390x_unknown_linux_gnu=s390x-linux-gnu-g++

.github/workflows/cron-daily-fuzz.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ jobs:
5959
with:
6060
persist-credentials: false
6161
- uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
62-
6362
id: cache-fuzz
6463
with:
6564
path: |
@@ -97,4 +96,4 @@ jobs:
9796
- name: Display structure of downloaded files
9897
run: ls -R
9998
- run: find executed_* -type f -exec cat {} + | sort > executed
100-
- run: source ./fuzz/fuzz-util.sh && listTargetNames | sort | diff - executed
99+
- run: cargo fuzz list | sort | diff - executed

.github/workflows/rust.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,10 @@ jobs:
263263
- name: "Select toolchain"
264264
uses: dtolnay/rust-toolchain@5d458579430fc14a04a08a1e7d3694f545e91ce6 # stable
265265
- name: "Add architecture i386"
266-
run: sudo dpkg --add-architecture i386
266+
run: |
267+
sudo dpkg --add-architecture i386
268+
sudo apt-get update -y
269+
sudo apt-get install -y gcc-multilib g++-multilib
267270
- name: "Install i686 gcc"
268271
run: sudo apt-get update -y && sudo apt-get install -y gcc-multilib
269272
- name: "Install target"
@@ -288,7 +291,7 @@ jobs:
288291
run: rustup target add s390x-unknown-linux-gnu
289292
- name: "Install cross"
290293
run: cargo install cross --locked
291-
- name: "Run cross test"
294+
- name: "Run s390x tests"
292295
run: cross test --target s390x-unknown-linux-gnu
293296

294297
Embedded:

.gitignore

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# .gitignore for rust-bitcoin repository workspace.
2+
fuzz/hfuzz_input/
23

34
# Lock files
45
Cargo.lock
@@ -16,9 +17,5 @@ hashes/target
1617
bitcoin/dep_test
1718
mutants.out*
1819

19-
# Fuzz artifacts
20-
hfuzz_target
21-
hfuzz_workspace
22-
2320
# Local tooling
2421
.maintainer-tools

Cargo-minimal.lock

Lines changed: 32 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ dependencies = [
9797
"bitcoin",
9898
"bitcoin-consensus-encoding",
9999
"bitcoin-p2p-messages",
100-
"honggfuzz",
100+
"libfuzzer-sys",
101101
"serde",
102102
"serde_json",
103103
"standard_test",
@@ -202,9 +202,15 @@ checksum = "60f0b0d4c0a382d2734228fd12b5a6b5dac185c60e938026fd31b265b94f9bd2"
202202

203203
[[package]]
204204
name = "cc"
205-
version = "1.0.28"
205+
version = "1.2.47"
206206
source = "registry+https://github.com/rust-lang/crates.io-index"
207-
checksum = "bb4a8b715cb4597106ea87c7c84b2f1d452c7492033765df7f32651e66fcf749"
207+
checksum = "cd405d82c84ff7f35739f175f67d8b9fb7687a0e84ccdc78bd3568839827cf07"
208+
dependencies = [
209+
"find-msvc-tools",
210+
"jobserver",
211+
"libc",
212+
"shlex",
213+
]
208214

209215
[[package]]
210216
name = "cfg-if"
@@ -219,6 +225,12 @@ dependencies = [
219225
"hex-conservative 0.3.0",
220226
]
221227

228+
[[package]]
229+
name = "find-msvc-tools"
230+
version = "0.1.5"
231+
source = "registry+https://github.com/rust-lang/crates.io-index"
232+
checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844"
233+
222234
[[package]]
223235
name = "getrandom"
224236
version = "0.3.0"
@@ -252,29 +264,20 @@ version = "0.1.1"
252264
source = "registry+https://github.com/rust-lang/crates.io-index"
253265
checksum = "3011d1213f159867b13cfd6ac92d2cd5f1345762c63be3554e84092d85a50bbd"
254266

255-
[[package]]
256-
name = "honggfuzz"
257-
version = "0.5.58"
258-
source = "registry+https://github.com/rust-lang/crates.io-index"
259-
checksum = "6e8319f3cc8fe416e7aa1ab95dcc04fd49f35397a47d0b2f0f225f6dba346a07"
260-
dependencies = [
261-
"lazy_static",
262-
"memmap2",
263-
"rustc_version",
264-
"semver",
265-
]
266-
267267
[[package]]
268268
name = "itoa"
269269
version = "0.4.3"
270270
source = "registry+https://github.com/rust-lang/crates.io-index"
271271
checksum = "1306f3464951f30e30d12373d31c79fbd52d236e5e896fd92f96ec7babbbe60b"
272272

273273
[[package]]
274-
name = "lazy_static"
275-
version = "1.5.0"
274+
name = "jobserver"
275+
version = "0.1.32"
276276
source = "registry+https://github.com/rust-lang/crates.io-index"
277-
checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
277+
checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0"
278+
dependencies = [
279+
"libc",
280+
]
278281

279282
[[package]]
280283
name = "libc"
@@ -283,12 +286,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
283286
checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
284287

285288
[[package]]
286-
name = "memmap2"
287-
version = "0.9.0"
289+
name = "libfuzzer-sys"
290+
version = "0.4.10"
288291
source = "registry+https://github.com/rust-lang/crates.io-index"
289-
checksum = "deaba38d7abf1d4cca21cc89e932e542ba2b9258664d2a9ef0e61512039c9375"
292+
checksum = "5037190e1f70cbeef565bd267599242926f724d3b8a9f510fd7e0b540cfa4404"
290293
dependencies = [
291-
"libc",
294+
"arbitrary",
295+
"cc",
292296
]
293297

294298
[[package]]
@@ -346,15 +350,6 @@ dependencies = [
346350
"zerocopy",
347351
]
348352

349-
[[package]]
350-
name = "rustc_version"
351-
version = "0.4.0"
352-
source = "registry+https://github.com/rust-lang/crates.io-index"
353-
checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
354-
dependencies = [
355-
"semver",
356-
]
357-
358353
[[package]]
359354
name = "ryu"
360355
version = "1.0.0"
@@ -381,12 +376,6 @@ dependencies = [
381376
"cc",
382377
]
383378

384-
[[package]]
385-
name = "semver"
386-
version = "1.0.0"
387-
source = "registry+https://github.com/rust-lang/crates.io-index"
388-
checksum = "76b5842e81eb9bbea19276a9dbbda22ac042532f390a67ab08b895617978abf3"
389-
390379
[[package]]
391380
name = "serde"
392381
version = "1.0.195"
@@ -427,6 +416,12 @@ dependencies = [
427416
"serde",
428417
]
429418

419+
[[package]]
420+
name = "shlex"
421+
version = "1.3.0"
422+
source = "registry+https://github.com/rust-lang/crates.io-index"
423+
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
424+
430425
[[package]]
431426
name = "standard_test"
432427
version = "0.1.0"

0 commit comments

Comments
 (0)