Skip to content

thread '<unnamed>' panicked at /home/jkratzer/working/rust-urlpattern/src/component.rs:235:36 #72

@pyoor

Description

@pyoor

Found via fuzzing:

#[test]
  fn issue72() {
    let _ = <UrlPattern>::parse(
      UrlPatternInit {
        pathname: Some("\\\n*\0".to_string()),
        ..Default::default()
      },
      Default::default(),
    )
    .unwrap();
  }
==3768202== ERROR: libFuzzer: deadly signal
    #0 0x644ec22a3e31 in __sanitizer_print_stack_trace /rustc/llvm/src/llvm-project/compiler-rt/lib/asan/asan_stack.cpp:87:3
    #1 0x644ec2385c0d in fuzzer::PrintStackTrace() /home/jkratzer/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libfuzzer-sys-0.4.10/libfuzzer/FuzzerUtil.cpp:210:38
    #2 0x644ec2376da9 in fuzzer::Fuzzer::CrashCallback() /home/jkratzer/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libfuzzer-sys-0.4.10/libfuzzer/FuzzerLoop.cpp:231:18
    #3 0x644ec2376da9 in fuzzer::Fuzzer::CrashCallback() /home/jkratzer/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libfuzzer-sys-0.4.10/libfuzzer/FuzzerLoop.cpp:226:6
    #4 0x7f0adc8ba32f  (/lib/x86_64-linux-gnu/libc.so.6+0x4532f) (BuildId: 274eec488d230825a136fa9c4d85370fed7a0a5e)
    #5 0x7f0adc913b2b in __pthread_kill_implementation nptl/pthread_kill.c:43:17
    #6 0x7f0adc913b2b in __pthread_kill_internal nptl/pthread_kill.c:78:10
    #7 0x7f0adc913b2b in pthread_kill nptl/pthread_kill.c:89:10
    #8 0x7f0adc8ba27d in raise signal/../sysdeps/posix/raise.c:26:13
    #9 0x7f0adc89d8fe in abort stdlib/abort.c:79:7
    #10 0x644ec3433c49 in std::sys::pal::unix::abort_internal::h1d4f3588d17b4029 /rustc/bc821528634632b4ff8dee5ac1ea4ad90d1b3eb5/library/std/src/sys/pal/unix/mod.rs:366:14
    #11 0x644ec3427a08 in std::process::abort::h5f16fd3a24051ea7 /rustc/bc821528634632b4ff8dee5ac1ea4ad90d1b3eb5/library/std/src/process.rs:2499:5
    #12 0x644ec236f8e4 in libfuzzer_sys::initialize::_$u7b$$u7b$closure$u7d$$u7d$::h3a3883e356166af8 /home/jkratzer/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libfuzzer-sys-0.4.10/src/lib.rs:94:9
    #13 0x644ec342e072 in _$LT$alloc..boxed..Box$LT$F$C$A$GT$$u20$as$u20$core..ops..function..Fn$LT$Args$GT$$GT$::call::hb1f4b4e93e9f031f /rustc/bc821528634632b4ff8dee5ac1ea4ad90d1b3eb5/library/alloc/src/boxed.rs:1980:9
    #14 0x644ec342e072 in std::panicking::rust_panic_with_hook::h2c223ad0988ff703 /rustc/bc821528634632b4ff8dee5ac1ea4ad90d1b3eb5/library/std/src/panicking.rs:841:13
    #15 0x644ec342dcf5 in std::panicking::begin_panic_handler::_$u7b$$u7b$closure$u7d$$u7d$::h9b8934eb82bb206d /rustc/bc821528634632b4ff8dee5ac1ea4ad90d1b3eb5/library/std/src/panicking.rs:699:13
    #16 0x644ec3429dd8 in std::sys::backtrace::__rust_end_short_backtrace::hf5bd8833a69d3b26 /rustc/bc821528634632b4ff8dee5ac1ea4ad90d1b3eb5/library/std/src/sys/backtrace.rs:168:18
    #17 0x644ec342d9bc in __rustc::rust_begin_unwind /rustc/bc821528634632b4ff8dee5ac1ea4ad90d1b3eb5/library/std/src/panicking.rs:697:5
    #18 0x644ec3475e0f in core::panicking::panic_fmt::hb28ab7e8d517e5a8 /rustc/bc821528634632b4ff8dee5ac1ea4ad90d1b3eb5/library/core/src/panicking.rs:75:14
    #19 0x644ec3475e9b in core::panicking::panic::h5d55a31e7fcdad24 /rustc/bc821528634632b4ff8dee5ac1ea4ad90d1b3eb5/library/core/src/panicking.rs:145:5
    #20 0x644ec3475c78 in core::option::unwrap_failed::h93051954b99a928b /rustc/bc821528634632b4ff8dee5ac1ea4ad90d1b3eb5/library/core/src/option.rs:2040:5
    #21 0x644ec246137d in core::option::Option$LT$T$GT$::unwrap::ha549bca83be86ffb /home/jkratzer/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:1003:21
    #22 0x644ec246137d in urlpattern::component::generate_pattern_string::hb9658d01ee21de05 /home/jkratzer/working/rust-urlpattern/src/component.rs
    #23 0x644ec233f247 in urlpattern::component::Component$LT$R$GT$::compile::ha5797e962dd5f45f /home/jkratzer/working/rust-urlpattern/src/component.rs:55:26
    #24 0x644ec22dc979 in urlpattern::UrlPattern$LT$R$GT$::parse_internal::h6f28892734c3c0af /home/jkratzer/working/rust-urlpattern/src/lib.rs:389:9
    #25 0x644ec236b460 in urlpattern::UrlPattern$LT$R$GT$::parse::he7358eab56f7b64d /home/jkratzer/working/rust-urlpattern/src/lib.rs:310:5
    #26 0x644ec236b460 in fuzz_parse::_::__libfuzzer_sys_run::hb348f3343d8866a8 /home/jkratzer/working/rust-urlpattern/fuzz/fuzz_targets/fuzz_parse.rs:35:13
    #27 0x644ec236abf4 in rust_fuzzer_test_input /home/jkratzer/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libfuzzer-sys-0.4.10/src/lib.rs:363:60
    #28 0x644ec236c4ef in libfuzzer_sys::test_input_wrap::_$u7b$$u7b$closure$u7d$$u7d$::haa2cdc9bd5126673 /home/jkratzer/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libfuzzer-sys-0.4.10/src/lib.rs:62:9
    #29 0x644ec236c4ef in std::panicking::try::do_call::h1c0ee8e322154f4f /home/jkratzer/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40
    #30 0x644ec236fb08 in __rust_try libfuzzer_sys.9054896272b5b590-cgu.0
    #31 0x644ec236ee6b in std::panicking::try::h88a16d0c1c04928f /home/jkratzer/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19
    #32 0x644ec236ee6b in std::panic::catch_unwind::h93721d536c62e0ab /home/jkratzer/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14
    #33 0x644ec236ee6b in LLVMFuzzerTestOneInput /home/jkratzer/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libfuzzer-sys-0.4.10/src/lib.rs:60:22
    #34 0x644ec2377308 in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /home/jkratzer/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libfuzzer-sys-0.4.10/libfuzzer/FuzzerLoop.cpp:619:15
    #35 0x644ec2393871 in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) /home/jkratzer/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libfuzzer-sys-0.4.10/libfuzzer/FuzzerDriver.cpp:328:21
    #36 0x644ec2397cce in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /home/jkratzer/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libfuzzer-sys-0.4.10/libfuzzer/FuzzerDriver.cpp:863:19
    #37 0x644ec23caf46 in main /home/jkratzer/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libfuzzer-sys-0.4.10/libfuzzer/FuzzerMain.cpp:20:30
    #38 0x7f0adc89f1c9 in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16
    #39 0x7f0adc89f28a in __libc_start_main csu/../csu/libc-start.c:360:3

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions