Skip to content

fuzz: add basic parser fuzz coverage#479

Merged
cpu merged 1 commit intorustls:mainfrom
cpu:ci/cpu-fuzz
Apr 21, 2026
Merged

fuzz: add basic parser fuzz coverage#479
cpu merged 1 commit intorustls:mainfrom
cpu:ci/cpu-fuzz

Conversation

@cpu
Copy link
Copy Markdown
Member

@cpu cpu commented Apr 21, 2026

Not yet integrated with oss-fuzz, still sufficient to catch simple bugs. In particular reverting the CRL IDP bit string indexing had the fuzzer rediscover a crashing input in ~12 seconds without any corpus files outside of what we already had from unit tests.

example run with the CRL IDP bit string fix reverted:
 Running `target/x86_64-unknown-linux-gnu/release/crl -artifact_prefix=/home/daniel/Code/Rust/webpki/fuzz/artifacts/crl/ -max_total_time=300 corpus/crl ../tests/crls`
INFO: Running with entropic power schedule (0xFF, 100).
INFO: Seed: 3595939631
INFO: Loaded 1 modules   (2296 inline 8-bit counters): 2296 [0x55555570f0c0, 0x55555570f9b8), 
INFO: Loaded 1 PC tables (2296 PCs): 2296 [0x55555570f9b8,0x555555718938), 
INFO:        0 files found in corpus/crl
INFO:       37 files found in ../tests/crls
INFO: -max_len is not provided; libFuzzer will not generate inputs larger than 8517 bytes
INFO: seed corpus: files: 37 min: 157b max: 8517b total: 28248b rss: 32Mb
#38	INITED cov: 260 ft: 350 corp: 24/9555b exec/s: 0 rss: 34Mb
#42	NEW    cov: 263 ft: 360 corp: 25/10520b lim: 1535 exec/s: 0 rss: 34Mb L: 965/1535 MS: 4 ChangeBit-ChangeBinInt-ShuffleBytes-CopyPart-
#45	NEW    cov: 264 ft: 361 corp: 26/10623b lim: 1535 exec/s: 0 rss: 34Mb L: 103/1535 MS: 3 ChangeASCIIInt-CopyPart-EraseBytes-
#46	NEW    cov: 265 ft: 362 corp: 27/11021b lim: 1535 exec/s: 0 rss: 34Mb L: 398/1535 MS: 1 InsertByte-
... [fuzzer ran for ~12 seconds, executing ~6.4 million test cases] ...

#4568501	REDUCE cov: 709 ft: 869 corp: 357/88Kb lim: 8517 exec/s: 571062 rss: 451Mb L: 301/820 MS: 1 CMP- DE: "\377\377\377\363"-
#4586257	NEW    cov: 710 ft: 870 corp: 358/89Kb lim: 8517 exec/s: 573282 rss: 451Mb L: 294/820 MS: 1 ChangeBit-
#4629923	REDUCE cov: 710 ft: 870 corp: 358/89Kb lim: 8517 exec/s: 578740 rss: 451Mb L: 297/820 MS: 1 EraseBytes-
#4653733	REDUCE cov: 711 ft: 871 corp: 359/89Kb lim: 8517 exec/s: 581716 rss: 451Mb L: 362/820 MS: 5 CMP-InsertByte-CopyPart-ChangeASCIIInt-CrossOver- DE: "\376\377\377\377"-
#4653855	REDUCE cov: 711 ft: 871 corp: 359/89Kb lim: 8517 exec/s: 581731 rss: 451Mb L: 342/820 MS: 2 ChangeBinInt-EraseBytes-
#4662469	REDUCE cov: 711 ft: 871 corp: 359/89Kb lim: 8517 exec/s: 582808 rss: 451Mb L: 327/820 MS: 4 ChangeByte-ChangeASCIIInt-CopyPart-EraseBytes-
#4663153	REDUCE cov: 711 ft: 871 corp: 359/89Kb lim: 8517 exec/s: 582894 rss: 451Mb L: 559/820 MS: 4 CMP-ShuffleBytes-ChangeBinInt-EraseBytes- DE: "\002\000\000\000\000\000\000\000"-
#4663886	REDUCE cov: 711 ft: 871 corp: 359/89Kb lim: 8517 exec/s: 582985 rss: 451Mb L: 308/820 MS: 3 ChangeBinInt-ChangeBinInt-EraseBytes-
#4671409	REDUCE cov: 711 ft: 871 corp: 359/89Kb lim: 8517 exec/s: 583926 rss: 451Mb L: 305/820 MS: 3 ChangeASCIIInt-ChangeByte-EraseBytes-
#4682729	REDUCE cov: 711 ft: 871 corp: 359/89Kb lim: 8517 exec/s: 520303 rss: 451Mb L: 819/819 MS: 5 CMP-ChangeASCIIInt-ChangeASCIIInt-InsertByte-EraseBytes- DE: "\377\377"-
#4722506	REDUCE cov: 711 ft: 871 corp: 359/89Kb lim: 8517 exec/s: 524722 rss: 451Mb L: 301/819 MS: 2 ShuffleBytes-EraseBytes-
#4763846	REDUCE cov: 711 ft: 871 corp: 359/89Kb lim: 8517 exec/s: 529316 rss: 451Mb L: 560/819 MS: 5 InsertByte-ChangeBit-ShuffleBytes-ShuffleBytes-EraseBytes-
#4772370	REDUCE cov: 711 ft: 871 corp: 359/89Kb lim: 8517 exec/s: 530263 rss: 451Mb L: 289/819 MS: 4 ChangeBit-PersAutoDict-ChangeASCIIInt-EraseBytes- DE: "\006\010%\206H\316=\004\003\002"-
#4797168	REDUCE cov: 711 ft: 871 corp: 359/89Kb lim: 8517 exec/s: 533018 rss: 451Mb L: 173/819 MS: 3 ChangeASCIIInt-CopyPart-EraseBytes-
#4813864	REDUCE cov: 711 ft: 871 corp: 359/89Kb lim: 8517 exec/s: 534873 rss: 451Mb L: 288/819 MS: 1 EraseBytes-
#4870350	REDUCE cov: 711 ft: 871 corp: 359/89Kb lim: 8517 exec/s: 541150 rss: 451Mb L: 169/819 MS: 1 CrossOver-
#4877261	REDUCE cov: 711 ft: 871 corp: 359/89Kb lim: 8517 exec/s: 541917 rss: 451Mb L: 294/819 MS: 1 EraseBytes-
#4888016	NEW    cov: 712 ft: 872 corp: 360/89Kb lim: 8517 exec/s: 543112 rss: 451Mb L: 292/819 MS: 5 PersAutoDict-ChangeByte-ChangeASCIIInt-ChangeByte-CrossOver- DE: "\000\000\000\345"-
#4964072	REDUCE cov: 712 ft: 872 corp: 360/89Kb lim: 8517 exec/s: 551563 rss: 451Mb L: 296/819 MS: 1 EraseBytes-
#5114094	NEW    cov: 713 ft: 873 corp: 361/89Kb lim: 8517 exec/s: 568232 rss: 451Mb L: 294/819 MS: 2 ChangeBinInt-ShuffleBytes-
#5124570	REDUCE cov: 713 ft: 873 corp: 361/89Kb lim: 8517 exec/s: 569396 rss: 451Mb L: 293/819 MS: 1 EraseBytes-
#5180816	NEW    cov: 719 ft: 879 corp: 362/90Kb lim: 8517 exec/s: 575646 rss: 451Mb L: 433/819 MS: 1 ChangeBinInt-
#5190708	REDUCE cov: 719 ft: 879 corp: 362/90Kb lim: 8517 exec/s: 576745 rss: 451Mb L: 287/819 MS: 2 PersAutoDict-EraseBytes- DE: "\376\377\377\377"-
#5294969	NEW    cov: 720 ft: 880 corp: 363/90Kb lim: 8517 exec/s: 529496 rss: 451Mb L: 433/819 MS: 1 PersAutoDict- DE: "\000\000\000\000\000\000\000V"-
#5349270	NEW    cov: 724 ft: 884 corp: 364/91Kb lim: 8517 exec/s: 534927 rss: 451Mb L: 297/819 MS: 1 ChangeBinInt-
#5371502	NEW    cov: 725 ft: 885 corp: 365/91Kb lim: 8517 exec/s: 537150 rss: 451Mb L: 297/819 MS: 2 PersAutoDict-ChangeByte- DE: "\001y"-
#5402859	NEW    cov: 727 ft: 887 corp: 366/91Kb lim: 8517 exec/s: 540285 rss: 451Mb L: 294/819 MS: 2 ChangeBinInt-CrossOver-
#5680255	REDUCE cov: 727 ft: 887 corp: 366/91Kb lim: 8517 exec/s: 568025 rss: 451Mb L: 297/819 MS: 1 EraseBytes-
#5736294	REDUCE cov: 727 ft: 887 corp: 366/91Kb lim: 8517 exec/s: 573629 rss: 451Mb L: 295/819 MS: 4 CrossOver-PersAutoDict-CMP-EraseBytes- DE: "\377\377\377\377\000\000\000\000"-"\006\011*\206H\206\367\015\001\001\013\005\000"-
#5766956	REDUCE cov: 727 ft: 887 corp: 366/91Kb lim: 8517 exec/s: 576695 rss: 451Mb L: 292/819 MS: 2 ChangeByte-EraseBytes-
#5890367	REDUCE cov: 727 ft: 887 corp: 366/91Kb lim: 8517 exec/s: 535487 rss: 451Mb L: 296/819 MS: 1 EraseBytes-
#5922624	REDUCE cov: 727 ft: 887 corp: 366/91Kb lim: 8517 exec/s: 538420 rss: 451Mb L: 12/819 MS: 2 EraseBytes-ChangeBit-
#5937020	NEW    cov: 728 ft: 888 corp: 367/92Kb lim: 8517 exec/s: 539729 rss: 451Mb L: 398/819 MS: 1 CrossOver-
#6035207	NEW    cov: 731 ft: 891 corp: 368/92Kb lim: 8517 exec/s: 548655 rss: 451Mb L: 398/819 MS: 2 ChangeASCIIInt-CrossOver-
#6054750	REDUCE cov: 731 ft: 891 corp: 368/92Kb lim: 8517 exec/s: 550431 rss: 451Mb L: 295/819 MS: 3 PersAutoDict-ChangeASCIIInt-EraseBytes- DE: "\006\010\334y\2671\302\373\374\375"-
#6215806	NEW    cov: 731 ft: 893 corp: 369/92Kb lim: 8517 exec/s: 565073 rss: 451Mb L: 295/819 MS: 1 ChangeBit-
#6220292	NEW    cov: 732 ft: 894 corp: 370/93Kb lim: 8517 exec/s: 565481 rss: 451Mb L: 398/819 MS: 1 ChangeByte-
#6389489	NEW    cov: 735 ft: 897 corp: 371/93Kb lim: 8517 exec/s: 532457 rss: 451Mb L: 297/819 MS: 2 PersAutoDict-ChangeByte- DE: ":\001\000\000\000\000\000\000"-

thread '<unnamed>' (2491657) panicked at /home/daniel/Code/Rust/webpki/src/der.rs:394:34:
attempt to subtract with overflow
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
==2491657== ERROR: libFuzzer: deadly signal
    #0 0x555555652b01 in __sanitizer_print_stack_trace /rustc/llvm/src/llvm-project/compiler-rt/lib/asan/asan_stack.cpp:87:3
    #1 0x5555556a7e6a in fuzzer::PrintStackTrace() /home/daniel/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libfuzzer-sys-0.4.12/libfuzzer/FuzzerUtil.cpp:210:5
    #2 0x5555556946d3 in fuzzer::Fuzzer::CrashCallback() /home/daniel/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libfuzzer-sys-0.4.12/libfuzzer/FuzzerLoop.cpp:231:3
    #3 0x7ffff7a52f2f  (/nix/store/pf5avvvl4ssd6kylcvg2g23hcjp71h19-glibc-2.39-52/lib/libc.so.6+0x3ff2f) (BuildId: 12f6a518b5cf54c9d2980d541179bfcf407fee9c)
    #4 0x7ffff7aa2efb in __pthread_kill_implementation (/nix/store/pf5avvvl4ssd6kylcvg2g23hcjp71h19-glibc-2.39-52/lib/libc.so.6+0x8fefb) (BuildId: 12f6a518b5cf54c9d2980d541179bfcf407fee9c)
    #5 0x7ffff7a52e85 in gsignal (/nix/store/pf5avvvl4ssd6kylcvg2g23hcjp71h19-glibc-2.39-52/lib/libc.so.6+0x3fe85) (BuildId: 12f6a518b5cf54c9d2980d541179bfcf407fee9c)
    #6 0x7ffff7a3b934 in abort (/nix/store/pf5avvvl4ssd6kylcvg2g23hcjp71h19-glibc-2.39-52/lib/libc.so.6+0x28934) (BuildId: 12f6a518b5cf54c9d2980d541179bfcf407fee9c)
    #7 0x5555556eea09 in std::sys::pal::unix::abort_internal /rustc/e370b60cf2b0d3e4b55923ec1558c5b5f8970cfb/library/std/src/sys/pal/unix/mod.rs:305:14
    #8 0x5555556ed838 in std::process::abort /rustc/e370b60cf2b0d3e4b55923ec1558c5b5f8970cfb/library/std/src/process.rs:2536:5
    #9 0x555555692514 in libfuzzer_sys::initialize::{closure#0} /home/daniel/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libfuzzer-sys-0.4.12/src/lib.rs:94:9
    #10 0x5555556edac1 in <alloc::boxed::Box<dyn for<'a, 'b> core::ops::function::Fn<(&'a std::panic::PanicHookInfo<'b>,), Output = ()> + core::marker::Sync + core::marker::Send> as core::ops::function::Fn<(&std::panic::PanicHookInfo,)>>::call /rustc/e370b60cf2b0d3e4b55923ec1558c5b5f8970cfb/library/alloc/src/boxed.rs:2254:9
    #11 0x5555556edac1 in std::panicking::panic_with_hook /rustc/e370b60cf2b0d3e4b55923ec1558c5b5f8970cfb/library/std/src/panicking.rs:833:13
    #12 0x5555556de129 in std::panicking::panic_handler::{closure#0} /rustc/e370b60cf2b0d3e4b55923ec1558c5b5f8970cfb/library/std/src/panicking.rs:691:13
    #13 0x5555556d3928 in std::sys::backtrace::__rust_end_short_backtrace::<std::panicking::panic_handler::{closure#0}, !> /rustc/e370b60cf2b0d3e4b55923ec1558c5b5f8970cfb/library/std/src/sys/backtrace.rs:182:18
    #14 0x5555556de87c in __rustc::rust_begin_unwind /rustc/e370b60cf2b0d3e4b55923ec1558c5b5f8970cfb/library/std/src/panicking.rs:689:5
    #15 0x55555570035b in core::panicking::panic_fmt /rustc/e370b60cf2b0d3e4b55923ec1558c5b5f8970cfb/library/core/src/panicking.rs:80:14
    #16 0x5555557010e8 in core::panicking::panic_const::panic_const_sub_overflow /rustc/e370b60cf2b0d3e4b55923ec1558c5b5f8970cfb/library/core/src/panicking.rs:175:17
    #17 0x555555684df6 in {closure#0} /home/daniel/Code/Rust/webpki/src/der.rs:394:34
    #18 0x555555684df6 in read_all<webpki::der::bit_string_flags::{closure_env#0}, webpki::der::BitStringFlags, webpki::error::Error> /home/daniel/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/untrusted-0.9.0/src/input.rs:69:22
    #19 0x555555684df6 in bit_string_flags /home/daniel/Code/Rust/webpki/src/der.rs:377:11
    #20 0x555555684df6 in {closure#1} /home/daniel/Code/Rust/webpki/src/crl/types.rs:550:33
    #21 0x555555684df6 in set_extension_once<webpki::der::BitStringFlags, webpki::crl::types::{impl#8}::from_der::{closure#0}::{closure_env#1}> /home/daniel/Code/Rust/webpki/src/x509.rs:58:33
    #22 0x555555684df6 in {closure#0} /home/daniel/Code/Rust/webpki/src/crl/types.rs:549:29
    #23 0x555555684df6 in read_all<webpki::crl::types::{impl#8}::from_der::{closure_env#0}, (), webpki::error::Error> /home/daniel/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/untrusted-0.9.0/src/input.rs:69:22
    #24 0x555555684df6 in nested_limited<(), webpki::crl::types::{impl#8}::from_der::{closure_env#0}> /home/daniel/Code/Rust/webpki/src/der.rs:119:28
    #25 0x555555684df6 in nested<(), webpki::crl::types::{impl#8}::from_der::{closure_env#0}> /home/daniel/Code/Rust/webpki/src/der.rs:132:5
    #26 0x555555684df6 in <webpki::crl::types::IssuingDistributionPoint>::from_der /home/daniel/Code/Rust/webpki/src/crl/types.rs:531:9
    #27 0x55555568ebca in <webpki::crl::types::BorrowedCertRevocationList as webpki::der::FromDer>::from_der /home/daniel/Code/Rust/webpki/src/crl/types.rs:450:13
    #28 0x55555568282f in call_once<fn(&mut untrusted::reader::Reader) -> core::result::Result<webpki::crl::types::BorrowedCertRevocationList, webpki::error::Error>, (&mut untrusted::reader::Reader)> /rustc/e370b60cf2b0d3e4b55923ec1558c5b5f8970cfb/library/core/src/ops/function.rs:250:5
    #29 0x55555568282f in read_all<fn(&mut untrusted::reader::Reader) -> core::result::Result<webpki::crl::types::BorrowedCertRevocationList, webpki::error::Error>, webpki::crl::types::BorrowedCertRevocationList, webpki::error::Error> /home/daniel/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/untrusted-0.9.0/src/input.rs:69:22
    #30 0x55555568282f in read_all<webpki::crl::types::BorrowedCertRevocationList> /home/daniel/Code/Rust/webpki/src/der.rs:54:11
    #31 0x55555568282f in <webpki::crl::types::BorrowedCertRevocationList>::from_der /home/daniel/Code/Rust/webpki/src/crl/types.rs:242:9
    #32 0x55555567a465 in crl::_::__libfuzzer_sys_run /home/daniel/Code/Rust/webpki/fuzz/fuzzers/crl.rs:10:13
    #33 0x55555567c6f0 in rust_fuzzer_test_input /home/daniel/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libfuzzer-sys-0.4.12/src/lib.rs:276:60
    #34 0x555555692094 in {closure#0} /home/daniel/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libfuzzer-sys-0.4.12/src/lib.rs:62:9
    #35 0x555555692094 in std::panicking::catch_unwind::do_call::<libfuzzer_sys::test_input_wrap::{closure#0}, i32> /rustc/e370b60cf2b0d3e4b55923ec1558c5b5f8970cfb/library/std/src/panicking.rs:581:40
    #36 0x555555692cf8 in __rust_try libfuzzer_sys.9809f97053570402-cgu.0
    #37 0x55555569177d in catch_unwind<i32, libfuzzer_sys::test_input_wrap::{closure_env#0}> /rustc/e370b60cf2b0d3e4b55923ec1558c5b5f8970cfb/library/std/src/panicking.rs:544:19
    #38 0x55555569177d in catch_unwind<libfuzzer_sys::test_input_wrap::{closure_env#0}, i32> /rustc/e370b60cf2b0d3e4b55923ec1558c5b5f8970cfb/library/std/src/panic.rs:359:14
    #39 0x55555569177d in LLVMFuzzerTestOneInput /home/daniel/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libfuzzer-sys-0.4.12/src/lib.rs:60:22
    #40 0x555555696062 in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /home/daniel/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libfuzzer-sys-0.4.12/libfuzzer/FuzzerLoop.cpp:619:13
    #41 0x555555695503 in fuzzer::Fuzzer::RunOne(unsigned char const*, unsigned long, bool, fuzzer::InputInfo*, bool, bool*) /home/daniel/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libfuzzer-sys-0.4.12/libfuzzer/FuzzerLoop.cpp:516:7
    #42 0x555555696ef7 in fuzzer::Fuzzer::MutateAndTestOne() /home/daniel/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libfuzzer-sys-0.4.12/libfuzzer/FuzzerLoop.cpp:765:19
    #43 0x555555697c95 in fuzzer::Fuzzer::Loop(std::vector<fuzzer::SizedFile, std::allocator<fuzzer::SizedFile>>&) /home/daniel/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libfuzzer-sys-0.4.12/libfuzzer/FuzzerLoop.cpp:910:5
    #44 0x5555556b3812 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /home/daniel/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libfuzzer-sys-0.4.12/libfuzzer/FuzzerDriver.cpp:923:6
    #45 0x5555556a8792 in main /home/daniel/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libfuzzer-sys-0.4.12/libfuzzer/FuzzerMain.cpp:20:10
    #46 0x7ffff7a3d10d in __libc_start_call_main (/nix/store/pf5avvvl4ssd6kylcvg2g23hcjp71h19-glibc-2.39-52/lib/libc.so.6+0x2a10d) (BuildId: 12f6a518b5cf54c9d2980d541179bfcf407fee9c)
    #47 0x7ffff7a3d1c8 in __libc_start_main@GLIBC_2.2.5 (/nix/store/pf5avvvl4ssd6kylcvg2g23hcjp71h19-glibc-2.39-52/lib/libc.so.6+0x2a1c8) (BuildId: 12f6a518b5cf54c9d2980d541179bfcf407fee9c)
    #48 0x5555555be2d4 in _start (/home/daniel/Code/Rust/webpki/fuzz/target/x86_64-unknown-linux-gnu/release/crl+0x6a2d4)

NOTE: libFuzzer has rudimentary signal handlers.
      Combine libFuzzer with AddressSanitizer or similar for better crash reports.
SUMMARY: libFuzzer: deadly signal
MS: 1 CMP- DE: "\001\000"-; base unit: 82bc7e0fa359e34cf209a4441e10bd3a3b8b5174
artifact_prefix='/home/daniel/Code/Rust/webpki/fuzz/artifacts/crl/'; Test unit written to /home/daniel/Code/Rust/webpki/fuzz/artifacts/crl/crash-a32ed619e3f9e6688991da3a54e72240152e97e6

────────────────────────────────────────────────────────────────────────────────

Failing input:

	artifacts/crl/crash-a32ed619e3f9e6688991da3a54e72240152e97e6

Output of `std::fmt::Debug`:

	[48, 130, 1, 39, 48, 129, 207, 2, 1, 1, 48, 10, 6, 8, 42, 134, 72, 206, 61, 4, 3, 2, 48, 73, 49, 43, 48, 41, 6, 3, 85, 4, 3, 12, 34, 99, 114, 108, 45, 100, 105, 115, 116, 114, 105, 98, 45, 112, 111, 105, 110, 116, 45, 116, 101, 115, 116, 46, 101, 120, 97, 109, 112, 108, 101, 46, 99, 111, 109, 49, 26, 48, 24, 6, 3, 85, 4, 10, 12, 17, 111, 110, 108, 121, 95, 115, 111, 109, 101, 95, 114, 101, 97, 115, 111, 110, 115, 23, 13, 56, 54, 49, 50, 50, 51, 48, 49, 53, 57, 49, 49, 90, 23, 13, 56, 54, 49, 50, 50, 51, 48, 50, 48, 48, 49, 49, 90, 160, 85, 48, 83, 48, 29, 6, 3, 85, 29, 20, 4, 22, 2, 20, 33, 99, 154, 137, 6, 67, 253, 39, 75, 9, 198, 206, 42, 116, 112, 221, 133, 85, 207, 70, 48, 50, 6, 3, 85, 29, 28, 1, 1, 255, 4, 40, 48, 38, 160, 32, 160, 30, 134, 28, 104, 116, 116, 112, 58, 47, 47, 101, 120, 97, 109, 112, 108, 101, 46, 99, 111, 109, 47, 99, 114, 108, 46, 49, 46, 100, 101, 114, 131, 1, 0, 75, 48, 10, 6, 8, 42, 134, 72, 206, 61, 4, 3, 2, 3, 71, 0, 48, 68, 2, 32, 22, 77, 54, 188, 159, 115, 153, 151, 189, 179, 157, 40, 48, 135, 54, 32, 206, 185, 77, 218, 167, 46, 126, 59, 139, 72, 172, 67, 116, 215, 110, 161, 2, 32, 24, 242, 154, 168, 170, 236, 92, 238, 7, 101, 95, 230, 27, 251, 230, 12, 196, 240, 221, 156, 168, 169, 32, 136, 158, 15, 4, 110, 138, 210, 178, 1]

Reproduce with:

	cargo fuzz run crl artifacts/crl/crash-a32ed619e3f9e6688991da3a54e72240152e97e6

Minimize test case with:

	cargo fuzz tmin crl artifacts/crl/crash-a32ed619e3f9e6688991da3a54e72240152e97e6

────────────────────────────────────────────────────────────────────────────────

Error: Fuzz target exited with exit status: 77

Not yet integrated with oss-fuzz, still sufficient to catch simple bugs.
@cpu cpu self-assigned this Apr 21, 2026
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 21, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 96.97%. Comparing base (59b7e4b) to head (955753e).
⚠️ Report is 5 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #479      +/-   ##
==========================================
- Coverage   96.98%   96.97%   -0.01%     
==========================================
  Files          20       20              
  Lines        3949     3936      -13     
==========================================
- Hits         3830     3817      -13     
  Misses        119      119              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@cpu cpu added this pull request to the merge queue Apr 21, 2026
Merged via the queue into rustls:main with commit c544b67 Apr 21, 2026
22 of 23 checks passed
@cpu cpu deleted the ci/cpu-fuzz branch April 21, 2026 17:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants