Skip to content

Commit 9e15f76

Browse files
committed
Use libfuzzer instead of honggfuzz
1 parent 3bc2910 commit 9e15f76

File tree

6 files changed

+78
-61
lines changed

6 files changed

+78
-61
lines changed

.github/docker/Dockerfile.s390x

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
FROM ubuntu:24.04
2+
3+
# Install both native (x86_64) and cross (s390x) compilation toolchains
4+
RUN apt-get update && \
5+
apt-get install -y --no-install-recommends \
6+
gcc g++ \
7+
gcc-13-s390x-linux-gnu \
8+
g++-13-s390x-linux-gnu \
9+
libc6-dev-s390x-cross \
10+
qemu-user-static \
11+
binfmt-support \
12+
curl \
13+
ca-certificates && \
14+
rm -rf /var/lib/apt/lists/*
15+
16+
# Set up alternatives to use GCC 13 for s390x
17+
RUN update-alternatives --install /usr/bin/s390x-linux-gnu-gcc s390x-linux-gnu-gcc /usr/bin/s390x-linux-gnu-gcc-13 100 && \
18+
update-alternatives --install /usr/bin/s390x-linux-gnu-g++ s390x-linux-gnu-g++ /usr/bin/s390x-linux-gnu-g++-13 100
19+
20+
# Register QEMU for s390x binary execution
21+
RUN update-binfmts --enable qemu-s390x || true
22+
23+
# Verify GCC versions
24+
RUN gcc --version && \
25+
s390x-linux-gnu-gcc --version && \
26+
s390x-linux-gnu-g++ --version
27+
28+
# Install Rust
29+
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal
30+
ENV PATH="/root/.cargo/bin:${PATH}"
31+
RUN rustup target add s390x-unknown-linux-gnu
32+
33+
# Set up cross-compilation environment
34+
ENV CARGO_TARGET_S390X_UNKNOWN_LINUX_GNU_LINKER=s390x-linux-gnu-gcc \
35+
CARGO_TARGET_S390X_UNKNOWN_LINUX_GNU_RUNNER="qemu-s390x-static -L /usr/s390x-linux-gnu" \
36+
CC_s390x_unknown_linux_gnu=s390x-linux-gnu-gcc \
37+
CXX_s390x_unknown_linux_gnu=s390x-linux-gnu-g++

.github/workflows/rust.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -262,11 +262,15 @@ jobs:
262262
persist-credentials: false
263263
- name: "Select toolchain"
264264
uses: dtolnay/rust-toolchain@5d458579430fc14a04a08a1e7d3694f545e91ce6 # stable
265-
- name: "Add architecture i386"
265+
- name: "Add architecture i386 and install dependencies"
266266
run: |
267267
sudo dpkg --add-architecture i386
268268
sudo apt-get update -y
269-
sudo apt-get install -y gcc-multilib g++-multilib
269+
sudo apt-get install -y \
270+
gcc-multilib \
271+
g++-multilib \
272+
libc6-dev-i386 \
273+
lib32stdc++-13-dev
270274
- name: "Install i686 gcc"
271275
run: sudo apt-get update -y && sudo apt-get install -y gcc-multilib
272276
- name: "Install target"

Cargo-minimal.lock

Lines changed: 4 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -202,15 +202,9 @@ checksum = "60f0b0d4c0a382d2734228fd12b5a6b5dac185c60e938026fd31b265b94f9bd2"
202202

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

215209
[[package]]
216210
name = "cfg-if"
@@ -225,12 +219,6 @@ dependencies = [
225219
"hex-conservative 0.3.0",
226220
]
227221

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-
234222
[[package]]
235223
name = "getrandom"
236224
version = "0.3.0"
@@ -270,15 +258,6 @@ version = "0.4.3"
270258
source = "registry+https://github.com/rust-lang/crates.io-index"
271259
checksum = "1306f3464951f30e30d12373d31c79fbd52d236e5e896fd92f96ec7babbbe60b"
272260

273-
[[package]]
274-
name = "jobserver"
275-
version = "0.1.32"
276-
source = "registry+https://github.com/rust-lang/crates.io-index"
277-
checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0"
278-
dependencies = [
279-
"libc",
280-
]
281-
282261
[[package]]
283262
name = "libc"
284263
version = "0.2.155"
@@ -287,9 +266,9 @@ checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
287266

288267
[[package]]
289268
name = "libfuzzer-sys"
290-
version = "0.4.10"
269+
version = "0.4.0"
291270
source = "registry+https://github.com/rust-lang/crates.io-index"
292-
checksum = "5037190e1f70cbeef565bd267599242926f724d3b8a9f510fd7e0b540cfa4404"
271+
checksum = "86c975d637bc2a2f99440932b731491fc34c7f785d239e38af3addd3c2fd0e46"
293272
dependencies = [
294273
"arbitrary",
295274
"cc",
@@ -416,12 +395,6 @@ dependencies = [
416395
"serde",
417396
]
418397

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-
425398
[[package]]
426399
name = "standard_test"
427400
version = "0.1.0"

Cargo-recent.lock

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
3131

3232
[[package]]
3333
name = "bech32"
34-
version = "0.11.0"
34+
version = "0.11.1"
3535
source = "registry+https://github.com/rust-lang/crates.io-index"
36-
checksum = "d965446196e3b7decd44aa7ee49e31d630118f90ef12f97900f262eb915c951d"
36+
checksum = "32637268377fc7b10a8c6d51de3e7fba1ce5dd371a96e342b34e6078db558e7f"
3737

3838
[[package]]
3939
name = "bincode"
@@ -60,7 +60,7 @@ dependencies = [
6060
"bitcoin-units",
6161
"bitcoin_hashes",
6262
"bitcoinconsensus",
63-
"hex-conservative 0.3.0",
63+
"hex-conservative 0.3.1",
6464
"hex_lit",
6565
"secp256k1",
6666
"serde",
@@ -81,7 +81,7 @@ name = "bitcoin-consensus-encoding"
8181
version = "1.0.0-rc.2"
8282
dependencies = [
8383
"bitcoin-internals",
84-
"hex-conservative 0.3.0",
84+
"hex-conservative 0.3.1",
8585
]
8686

8787
[[package]]
@@ -107,7 +107,7 @@ name = "bitcoin-internals"
107107
version = "0.4.2"
108108
dependencies = [
109109
"bincode",
110-
"hex-conservative 0.3.0",
110+
"hex-conservative 0.3.1",
111111
"serde",
112112
"serde_json",
113113
]
@@ -133,7 +133,7 @@ dependencies = [
133133
"bitcoin-primitives",
134134
"bitcoin-units",
135135
"bitcoin_hashes",
136-
"hex-conservative 0.3.0",
136+
"hex-conservative 0.3.1",
137137
"hex_lit",
138138
]
139139

@@ -147,8 +147,8 @@ dependencies = [
147147
"bitcoin-internals",
148148
"bitcoin-units",
149149
"bitcoin_hashes",
150-
"hex-conservative 0.3.0",
151-
"hex-conservative 1.0.0",
150+
"hex-conservative 0.3.1",
151+
"hex-conservative 1.0.1",
152152
"hex_lit",
153153
"serde",
154154
"serde_json",
@@ -173,7 +173,7 @@ version = "0.18.0"
173173
dependencies = [
174174
"bitcoin-consensus-encoding",
175175
"bitcoin-internals",
176-
"hex-conservative 0.3.0",
176+
"hex-conservative 0.3.1",
177177
"serde",
178178
"serde_test",
179179
]
@@ -189,9 +189,9 @@ dependencies = [
189189

190190
[[package]]
191191
name = "cc"
192-
version = "1.2.47"
192+
version = "1.2.50"
193193
source = "registry+https://github.com/rust-lang/crates.io-index"
194-
checksum = "cd405d82c84ff7f35739f175f67d8b9fb7687a0e84ccdc78bd3568839827cf07"
194+
checksum = "9f50d563227a1c37cc0a263f64eca3334388c01c5e4c4861a9def205c614383c"
195195
dependencies = [
196196
"find-msvc-tools",
197197
"jobserver",
@@ -209,7 +209,7 @@ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
209209
name = "chacha20-poly1305"
210210
version = "0.1.2"
211211
dependencies = [
212-
"hex-conservative 0.3.0",
212+
"hex-conservative 0.3.1",
213213
]
214214

215215
[[package]]
@@ -232,18 +232,18 @@ dependencies = [
232232

233233
[[package]]
234234
name = "hex-conservative"
235-
version = "0.3.0"
235+
version = "0.3.1"
236236
source = "registry+https://github.com/rust-lang/crates.io-index"
237-
checksum = "4afe881d0527571892c4034822e59bb10c6c991cce6abe8199b6f5cf10766f55"
237+
checksum = "d2b9348ee0d8d4e3a894946c1ab104d08a2e44ca13656613afada8905ea609b6"
238238
dependencies = [
239239
"arrayvec",
240240
]
241241

242242
[[package]]
243243
name = "hex-conservative"
244-
version = "1.0.0"
244+
version = "1.0.1"
245245
source = "registry+https://github.com/rust-lang/crates.io-index"
246-
checksum = "9ee770c000993d17c185713463d5ebfbd1af9afae4c17cc295640104383bfbf0"
246+
checksum = "366fa3443ac84474447710ec17bb00b05dfbd096137817981e86f992f21a2793"
247247

248248
[[package]]
249249
name = "hex_lit"
@@ -253,9 +253,9 @@ checksum = "3011d1213f159867b13cfd6ac92d2cd5f1345762c63be3554e84092d85a50bbd"
253253

254254
[[package]]
255255
name = "itoa"
256-
version = "1.0.15"
256+
version = "1.0.16"
257257
source = "registry+https://github.com/rust-lang/crates.io-index"
258-
checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
258+
checksum = "7ee5b5339afb4c41626dde77b7a611bd4f2c202b897852b4bcf5d03eddc61010"
259259

260260
[[package]]
261261
name = "jobserver"
@@ -269,9 +269,9 @@ dependencies = [
269269

270270
[[package]]
271271
name = "libc"
272-
version = "0.2.177"
272+
version = "0.2.178"
273273
source = "registry+https://github.com/rust-lang/crates.io-index"
274-
checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976"
274+
checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091"
275275

276276
[[package]]
277277
name = "libfuzzer-sys"
@@ -353,9 +353,9 @@ dependencies = [
353353

354354
[[package]]
355355
name = "ryu"
356-
version = "1.0.20"
356+
version = "1.0.21"
357357
source = "registry+https://github.com/rust-lang/crates.io-index"
358-
checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f"
358+
checksum = "62049b2877bf12821e8f9ad256ee38fdc31db7387ec2d3b3f403024de2034aea"
359359

360360
[[package]]
361361
name = "secp256k1"
@@ -446,9 +446,9 @@ dependencies = [
446446

447447
[[package]]
448448
name = "syn"
449-
version = "2.0.110"
449+
version = "2.0.111"
450450
source = "registry+https://github.com/rust-lang/crates.io-index"
451-
checksum = "a99801b5bd34ede4cf3fc688c5919368fea4e4814a4664359503e6015b280aea"
451+
checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87"
452452
dependencies = [
453453
"proc-macro2",
454454
"quote",
@@ -478,18 +478,18 @@ checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59"
478478

479479
[[package]]
480480
name = "zerocopy"
481-
version = "0.8.28"
481+
version = "0.8.31"
482482
source = "registry+https://github.com/rust-lang/crates.io-index"
483-
checksum = "43fa6694ed34d6e57407afbccdeecfa268c470a7d2a5b0cf49ce9fcc345afb90"
483+
checksum = "fd74ec98b9250adb3ca554bdde269adf631549f51d8a8f8f0a10b50f1cb298c3"
484484
dependencies = [
485485
"zerocopy-derive",
486486
]
487487

488488
[[package]]
489489
name = "zerocopy-derive"
490-
version = "0.8.28"
490+
version = "0.8.31"
491491
source = "registry+https://github.com/rust-lang/crates.io-index"
492-
checksum = "c640b22cd9817fae95be82f0d2f90b11f7605f6c319d16705c459b27ac2cbc26"
492+
checksum = "d8a8d209fdf45cf5138cbb5a506f6b52522a25afccc534d1475dad8e31105c6a"
493493
dependencies = [
494494
"proc-macro2",
495495
"quote",

Cross.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
[target.s390x-unknown-linux-gnu]
2+
dockerfile = ".github/docker/Dockerfile.s390x"

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ that the committed hashes are free from malware. It is your responsibility to
103103
review them.
104104
- Fuzz testing with [`libfuzzer`](https://github.com/rust-fuzz/libfuzzer)
105105

106+
- Fuzz testing with [`libfuzzer`](https://github.com/rust-fuzz/libfuzzer)
106107
## Policy on Altcoins/Altchains
107108

108109
Since the altcoin landscape includes projects which [frequently appear and disappear, and are poorly

0 commit comments

Comments
 (0)