diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 07d285aaf11..00efb3e95ba 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -42,6 +42,7 @@ jobs: git: https://github.com/Michael-F-Bryan/mdbook-linkcheck.git rev: 8c783c5d754d83bcd50c28fb4174854b04ece990 - uses: actions/checkout@v4 + - uses: extractions/setup-just@v3 - if: runner.os == 'Linux' uses: ./.github/workflows/ubuntu-prepare - if: runner.os != 'Linux' @@ -56,9 +57,9 @@ jobs: if: runner.os != 'Linux' - name: Check for binary blobs if: runner.os == 'Linux' - run: ./scripts/check_for_blobs.sh + run: just check-blobs - name: Build libafl debug - run: cargo build -p libafl + run: just build-libafl - name: Test the book (Linux) # TODO: fix books test fail with updated windows-rs if: runner.os == 'Linux' @@ -69,18 +70,16 @@ jobs: - name: Build individual libafl book examples (linux) if: runner.os == 'Linux' run: cd docs/listings/baby_fuzzer/ && just build-all + - name: Doc + if: runner.os == 'Linux' + run: just doc - name: Run tests (Windows) if: runner.os == 'Windows' - run: cargo test -- --test-threads 1 + run: just test-serial - name: Run tests (Linux) if: runner.os != 'Windows' - run: cargo test -- --test-threads 1 - - name: Test libafl no_std - run: cd crates/libafl && cargo test --no-default-features - - name: Test libafl_bolts no_std no_alloc - run: cd crates/libafl_bolts && cargo test --no-default-features - - name: Test libafl_targets no_std - run: cd crates/libafl_targets && cargo test --no-default-features + run: just test-serial + ubuntu-doc-build: runs-on: ubuntu-24.04 @@ -90,7 +89,7 @@ jobs: - uses: Swatinem/rust-cache@v2 # ---- doc check ---- - name: Build Docs - run: just doc-all + run: just doc ubuntu-doc-test: runs-on: ubuntu-24.04 @@ -100,7 +99,7 @@ jobs: - uses: Swatinem/rust-cache@v2 # ---- doc check ---- - name: Test Docs - run: cargo test --doc --all-features + run: just test-docs ubuntu-miri: runs-on: ubuntu-24.04 @@ -117,7 +116,7 @@ jobs: shared-key: ubuntu-miri # --- miri undefined behavior test -- - name: Run miri tests - run: RUST_BACKTRACE=1 MIRIFLAGS="-Zmiri-disable-isolation" cargo miri test + run: just test-miri ubuntu: runs-on: ubuntu-24.04 @@ -130,18 +129,18 @@ jobs: with: { shared-key: "ubuntu" } # pcguard edges and pcguard hitcounts are not compatible and we need to build them seperately - name: Check pcguard edges - run: cargo check --features=sancov_pcguard_edges + run: just check-sancov-edges - name: run shellcheck - run: shellcheck ./scripts/*.sh + run: just shellcheck # ---- build normal and examples ---- - name: Run a normal build - run: cargo build --verbose + run: just build # - name: Run libafl_qemu usermode tests # run: cd crates/libafl_qemu && cargo test # - name: Run libafl_qemu systemmode tests # run: cd crates/libafl_qemu && cargo test --no-default-features --features x86_64,systemmode - name: Build examples - run: cargo build --examples --verbose + run: just examples ubuntu-clippy: runs-on: ubuntu-24.04 @@ -178,6 +177,7 @@ jobs: # Tracking: https://github.com/CensoredUsername/dynasm-rs/issues/114 # One dep of libafl_frida fails on `DOCS_RS` for stable toolchain. Therefore, we _only_ run nightly for that. # For the rest of other crates, we still use stable toolchain. + - uses: extractions/setup-just@v3 - name: "Setup nightly" uses: dtolnay/rust-toolchain@nightly with: @@ -187,7 +187,7 @@ jobs: - name: Check each feature # Skipping `python` as it has to be built with the `maturin` tool # `sancov_pcguard_edges` is tested seperatelyc - run: LLVM_VERSION=18 CI_INSTANCES=18 cargo run --manifest-path ./utils/ci_splitter/Cargo.toml -- ${{ matrix.instance_idx }} + run: just check-features ${{ matrix.instance_idx }} # idk why bindgen generates a corrupted file only on CI. # ubuntu-concolic: @@ -215,7 +215,7 @@ jobs: - uses: Swatinem/rust-cache@v2 with: { shared-key: "ubuntu" } - name: Run a maturin build - run: export LLVM_CONFIG=llvm-config-${{env.MAIN_LLVM_VERSION}} && cd ./bindings/pylibafl && python3 -m venv .env && . .env/bin/activate && pip install --upgrade --force-reinstall . && ./test.sh + run: export LLVM_CONFIG=llvm-config-${{env.MAIN_LLVM_VERSION}} && just build-python - name: Run python test run: . ./bindings/pylibafl/.env/bin/activate # && cd fuzzers/binary_only/python_qemu/ && python3 fuzzer.py 2>&1 | grep "Bye" @@ -225,15 +225,17 @@ jobs: MAIN_LLVM_VERSION: 21 steps: - uses: actions/checkout@v4 + - uses: extractions/setup-just@v3 - uses: dtolnay/rust-toolchain@nightly with: components: rustfmt - uses: Swatinem/rust-cache@v2 with: { shared-key: "ubuntu" } + - uses: extractions/setup-just@v3 - name: Installing black run: python3 -m pip install black - name: Format Check - run: ./scripts/fmt_all.sh check + run: just check-fmt check-md-links: runs-on: ubuntu-latest @@ -249,17 +251,19 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + - uses: extractions/setup-just@v3 - uses: dtolnay/rust-toolchain@stable - uses: taiki-e/install-action@cargo-hack # Note: We currently only specify minimum rust versions for the default workspace members - - run: cargo hack check --rust-version -p libafl -p libafl_bolts -p libafl_derive -p libafl_cc -p libafl_targets + - run: just msrv fuzzers-preflight: runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 + - uses: extractions/setup-just@v3 - name: Fuzzer in CI Check - run: ./scripts/check_tested_fuzzers.sh + run: just fuzzers-preflight fuzzers: name: 🚀 ${{ matrix.fuzzer }} @@ -386,13 +390,8 @@ jobs: if: runner.os == 'Linux' shell: bash run: | - RUN_ON_CI=1 \ LLVM_CONFIG=llvm-config-${{env.MAIN_LLVM_VERSION}} \ - cargo \ - run \ - --manifest-path ./utils/ci_runner/Cargo.toml \ - -- \ - fuzzers/${{ matrix.fuzzer }} + just test-fuzzer fuzzers/${{ matrix.fuzzer }} # This job checks whether any changes have been made to the QEMU code to avoid # rebuilding and testing the QEMU related fuzzers unnecessarily as they are @@ -440,7 +439,7 @@ jobs: - name: Build and run example fuzzers (Linux) if: runner.os == 'Linux' shell: bash - run: RUN_ON_CI=1 LLVM_CONFIG=llvm-config-${{env.MAIN_LLVM_VERSION}} cargo run --manifest-path ./utils/ci_runner/Cargo.toml -- ${{ matrix.fuzzer }} + run: LLVM_CONFIG=llvm-config-${{env.MAIN_LLVM_VERSION}} just test-fuzzer ${{ matrix.fuzzer }} # Job to build and test the QEMU fuzzers qemu-user: @@ -491,13 +490,8 @@ jobs: run: | unset RUSTC && \ ARCH=x86_64 \ - RUN_ON_CI=1 \ LLVM_CONFIG=llvm-config-${{env.MAIN_LLVM_VERSION}} \ - cargo \ - run \ - --manifest-path ./utils/ci_runner/Cargo.toml \ - -- \ - fuzzers/${{ matrix.fuzzer }} + just test-fuzzer fuzzers/${{ matrix.fuzzer }} # Job to build and test the QEMU fuzzers @@ -546,13 +540,8 @@ jobs: run: | unset RUSTC && \ ARCH=arm \ - RUN_ON_CI=1 \ LLVM_CONFIG=llvm-config-${{env.MAIN_LLVM_VERSION}} \ - cargo \ - run \ - --manifest-path ./utils/ci_runner/Cargo.toml \ - -- \ - fuzzers/${{ matrix.fuzzer }} + just test-fuzzer fuzzers/${{ matrix.fuzzer }} # Job to build and test the QEMU fuzzers qemu-system-i386: @@ -706,15 +695,14 @@ jobs: - name: Add targets run: rustup target add arm-linux-androideabi && rustup target add thumbv6m-none-eabi - uses: actions/checkout@v4 + - uses: extractions/setup-just@v3 - uses: Swatinem/rust-cache@v2 with: shared-key: no-std + - name: Test no-std + run: just test-no-std - name: Build aarch64-unknown-none - run: cd fuzzers/fuzz_anything/baby_no_std && cargo build -Zbuild-std=core,alloc --target aarch64-unknown-none -v --release && cd ../.. - - name: run x86_64 until panic! - run: cd fuzzers/fuzz_anything/baby_no_std && cargo run || test $? -ne 0 || exit 1 - - name: no_std tests - run: cd ./crates/libafl && cargo test --no-default-features + run: just build-aarch64-unknown-none x86-i686-build: runs-on: ubuntu-24.04 @@ -728,11 +716,12 @@ jobs: - name: Install x86 build dependencies / multilib run: sudo apt update && sudo apt -y install gcc-multilib g++-multilib - uses: actions/checkout@v4 + - uses: extractions/setup-just@v3 - uses: Swatinem/rust-cache@v2 with: shared-key: x86-i686 - name: test - run: cargo check --target=i686-unknown-linux-gnu + run: just check-i686 nostd-clippy: @@ -744,13 +733,12 @@ jobs: - name: Add targets run: rustup target add arm-linux-androideabi && rustup target add thumbv6m-none-eabi - uses: actions/checkout@v4 + - uses: extractions/setup-just@v3 - uses: Swatinem/rust-cache@v2 with: shared-key: no-std-clippy - - name: libafl armv6m-none-eabi (32 bit no_std) clippy - run: cd ./crates/libafl && cargo clippy --target thumbv6m-none-eabi --no-default-features - - name: libafl_bolts armv6m-none-eabi (32 bit no_std) clippy - run: cd ./crates/libafl_bolts && cargo clippy --target thumbv6m-none-eabi --no-default-features + - name: Clippy thumbv6m-none-eabi + run: just clippy-thumbv6m-none-eabi format-toml: runs-on: ubuntu-24.04 @@ -758,8 +746,9 @@ jobs: - name: Install taplo run: curl -fsSL https://github.com/tamasfe/taplo/releases/download/0.10.0/taplo-linux-x86_64.gz | gzip -d - | install -m 755 /dev/stdin /usr/local/bin/taplo - uses: actions/checkout@v4 + - uses: extractions/setup-just@v3 - name: Run taplo - run: taplo format --check + run: just check-toml build-docker: runs-on: ubuntu-24.04 @@ -920,13 +909,14 @@ jobs: # Needs to match version in tinyinst-rs run: cargo install cxxbridge-cmd@=1.0.190 - uses: actions/checkout@v4 + - uses: extractions/setup-just@v3 - uses: Swatinem/rust-cache@v2 - name: MacOS Build - run: cargo build --verbose + run: just build - name: Increase map sizes - run: ./scripts/shmem_limits_macos.sh + run: just increase-mem-limits - name: Clippy - run: cargo clippy --tests --all --exclude libafl_nyx --exclude symcc_runtime --exclude runtime_test --exclude libvharness_sys --exclude libafl_qemu_sys --exclude libafl_qemu --exclude libafl_qemu_build + run: just clippy ubuntu-cross-android-arm64: runs-on: ubuntu-24.04 @@ -940,9 +930,10 @@ jobs: - name: install cargo ndk run: cargo install cargo-ndk - uses: actions/checkout@v4 + - uses: extractions/setup-just@v3 - uses: Swatinem/rust-cache@v2 - name: Build Android - run: PYO3_CROSS_PYTHON_VERSION=$(python3 -c "print('{}.{}'.format(__import__('sys').version_info.major, __import__('sys').version_info.minor))") cargo ndk -t arm64-v8a build --release + run: just build-android ubuntu-cross-android-x86_64: runs-on: ubuntu-24.04 @@ -964,7 +955,7 @@ jobs: env: ANDROID_NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }} ANDROID_NDK_ROOT: ${{ steps.setup-ndk.outputs.ndk-path }} - run: cargo ndk -t x86_64 build + run: just build-android-x86_64 #run: cargo build --target aarch64-linux-android # TODO: Figure out how to properly build stuff with clang #- name: Add clang path to $PATH env diff --git a/Cargo.lock b/Cargo.lock deleted file mode 100644 index d9ac55f8989..00000000000 --- a/Cargo.lock +++ /dev/null @@ -1,7816 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "addr2line" -version = "0.25.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5d307320b3181d6d7954e663bd7c774a838b8220fe0593c86d9fb09f498b4b" -dependencies = [ - "cpp_demangle", - "fallible-iterator", - "gimli", - "memmap2", - "object 0.37.3", - "rustc-demangle", - "smallvec", - "typed-arena", -] - -[[package]] -name = "adler2" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" - -[[package]] -name = "aead" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fc95d1bdb8e6666b2b217308eeeb09f2d6728d104be3e31916cc74d15420331" -dependencies = [ - "generic-array", -] - -[[package]] -name = "aes" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "884391ef1066acaa41e766ba8f596341b96e93ce34f9a43e7d24bf0a0eaf0561" -dependencies = [ - "aes-soft", - "aesni", - "cipher", -] - -[[package]] -name = "aes-gcm" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5278b5fabbb9bd46e24aa69b2fdea62c99088e0a950a9be40e3e0101298f88da" -dependencies = [ - "aead", - "aes", - "cipher", - "ctr", - "ghash", - "subtle", -] - -[[package]] -name = "aes-soft" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be14c7498ea50828a38d0e24a765ed2effe92a705885b57d029cd67d45744072" -dependencies = [ - "cipher", - "opaque-debug", -] - -[[package]] -name = "aesni" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea2e11f5e94c2f7d386164cc2aa1f97823fed6f259e486940a71c174dd01b0ce" -dependencies = [ - "cipher", - "opaque-debug", -] - -[[package]] -name = "ahash" -version = "0.8.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" -dependencies = [ - "cfg-if 1.0.4", - "getrandom 0.3.4", - "once_cell", - "version_check", - "zerocopy", -] - -[[package]] -name = "aho-corasick" -version = "1.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" -dependencies = [ - "memchr", -] - -[[package]] -name = "alloca" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5a7d05ea6aea7e9e64d25b9156ba2fee3fdd659e34e41063cd2fc7cd020d7f4" -dependencies = [ - "cc", -] - -[[package]] -name = "allocator-api2" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "anes" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" - -[[package]] -name = "ansi_term" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" -dependencies = [ - "winapi", -] - -[[package]] -name = "anstream" -version = "0.6.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is_terminal_polyfill", - "utf8parse", -] - -[[package]] -name = "anstyle" -version = "1.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" - -[[package]] -name = "anstyle-parse" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" -dependencies = [ - "windows-sys 0.61.2", -] - -[[package]] -name = "anstyle-wincon" -version = "3.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" -dependencies = [ - "anstyle", - "once_cell_polyfill", - "windows-sys 0.61.2", -] - -[[package]] -name = "anyhow" -version = "1.0.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" - -[[package]] -name = "arbitrary" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" -dependencies = [ - "derive_arbitrary", -] - -[[package]] -name = "arbitrary-int" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "825297538d77367557b912770ca3083f778a196054b3ee63b22673c4a3cae0a5" - -[[package]] -name = "arbitrary-int" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c858caffa49edfc4ecc45a4bec37abd3e88041a2903816f10f990b7b41abc281" - -[[package]] -name = "arrayref" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" - -[[package]] -name = "arrayvec" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" - -[[package]] -name = "arrayvec" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" - -[[package]] -name = "async-attributes" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5" -dependencies = [ - "quote", - "syn 1.0.109", -] - -[[package]] -name = "async-channel" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" -dependencies = [ - "concurrent-queue", - "event-listener 2.5.3", - "futures-core", -] - -[[package]] -name = "async-channel" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2" -dependencies = [ - "concurrent-queue", - "event-listener-strategy", - "futures-core", - "pin-project-lite 0.2.16", -] - -[[package]] -name = "async-dup" -version = "1.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c2886ab563af5038f79ec016dd7b87947ed138b794e8dd64992962c9cca0411" -dependencies = [ - "async-lock 3.4.2", - "futures-io", -] - -[[package]] -name = "async-executor" -version = "1.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497c00e0fd83a72a79a39fcbd8e3e2f055d6f6c7e025f3b3d91f4f8e76527fb8" -dependencies = [ - "async-task", - "concurrent-queue", - "fastrand 2.3.0", - "futures-lite 2.6.1", - "pin-project-lite 0.2.16", - "slab", -] - -[[package]] -name = "async-global-executor" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c" -dependencies = [ - "async-channel 2.5.0", - "async-executor", - "async-io 2.6.0", - "async-lock 3.4.2", - "blocking", - "futures-lite 2.6.1", - "once_cell", -] - -[[package]] -name = "async-h1" -version = "2.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d1d1dae8cb2c4258a79d6ed088b7fb9b4763bf4e9b22d040779761e046a2971" -dependencies = [ - "async-channel 1.9.0", - "async-dup", - "async-global-executor", - "async-io 1.13.0", - "futures-lite 1.13.0", - "http-types", - "httparse", - "log", - "pin-project", -] - -[[package]] -name = "async-io" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" -dependencies = [ - "async-lock 2.8.0", - "autocfg", - "cfg-if 1.0.4", - "concurrent-queue", - "futures-lite 1.13.0", - "log", - "parking", - "polling 2.8.0", - "rustix 0.37.28", - "slab", - "socket2 0.4.10", - "waker-fn", -] - -[[package]] -name = "async-io" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc" -dependencies = [ - "autocfg", - "cfg-if 1.0.4", - "concurrent-queue", - "futures-io", - "futures-lite 2.6.1", - "parking", - "polling 3.11.0", - "rustix 1.1.3", - "slab", - "windows-sys 0.61.2", -] - -[[package]] -name = "async-lock" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" -dependencies = [ - "event-listener 2.5.3", -] - -[[package]] -name = "async-lock" -version = "3.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311" -dependencies = [ - "event-listener 5.4.1", - "event-listener-strategy", - "pin-project-lite 0.2.16", -] - -[[package]] -name = "async-process" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc50921ec0055cdd8a16de48773bfeec5c972598674347252c0399676be7da75" -dependencies = [ - "async-channel 2.5.0", - "async-io 2.6.0", - "async-lock 3.4.2", - "async-signal", - "async-task", - "blocking", - "cfg-if 1.0.4", - "event-listener 5.4.1", - "futures-lite 2.6.1", - "rustix 1.1.3", -] - -[[package]] -name = "async-session" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "345022a2eed092cd105cc1b26fd61c341e100bd5fcbbd792df4baf31c2cc631f" -dependencies = [ - "anyhow", - "async-std", - "async-trait", - "base64 0.12.3", - "bincode 1.3.3", - "blake3 0.3.8", - "chrono", - "hmac 0.8.1", - "kv-log-macro", - "rand 0.7.3", - "serde", - "serde_json", - "sha2 0.9.9", -] - -[[package]] -name = "async-signal" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43c070bbf59cd3570b6b2dd54cd772527c7c3620fce8be898406dd3ed6adc64c" -dependencies = [ - "async-io 2.6.0", - "async-lock 3.4.2", - "atomic-waker", - "cfg-if 1.0.4", - "futures-core", - "futures-io", - "rustix 1.1.3", - "signal-hook-registry", - "slab", - "windows-sys 0.61.2", -] - -[[package]] -name = "async-sse" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53bba003996b8fd22245cd0c59b869ba764188ed435392cf2796d03b805ade10" -dependencies = [ - "async-channel 1.9.0", - "async-std", - "http-types", - "log", - "memchr", - "pin-project-lite 0.1.12", -] - -[[package]] -name = "async-std" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c8e079a4ab67ae52b7403632e4618815d6db36d2a010cfe41b02c1b1578f93b" -dependencies = [ - "async-attributes", - "async-channel 1.9.0", - "async-global-executor", - "async-io 2.6.0", - "async-lock 3.4.2", - "async-process", - "crossbeam-utils", - "futures-channel", - "futures-core", - "futures-io", - "futures-lite 2.6.1", - "gloo-timers", - "kv-log-macro", - "log", - "memchr", - "once_cell", - "pin-project-lite 0.2.16", - "pin-utils", - "slab", - "wasm-bindgen-futures", -] - -[[package]] -name = "async-task" -version = "4.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" - -[[package]] -name = "async-trait" -version = "0.1.89" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "atomic-waker" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" - -[[package]] -name = "autocfg" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" - -[[package]] -name = "baby-mimalloc" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ed2b00c57c2899f23c8dbf1d30c3eb4fde5e98dd113e278d7677b4c8d290bf" -dependencies = [ - "spin 0.9.8", -] - -[[package]] -name = "backtrace" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb531853791a215d7c62a30daf0dde835f381ab5de4589cfe7c649d2cbe92bd6" -dependencies = [ - "addr2line", - "cfg-if 1.0.4", - "libc", - "miniz_oxide", - "object 0.37.3", - "rustc-demangle", - "serde", - "windows-link", -] - -[[package]] -name = "base-x" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" - -[[package]] -name = "base64" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" - -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - -[[package]] -name = "base64" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" - -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - -[[package]] -name = "bincode" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36eaf5d7b090263e8150820482d5d93cd964a81e4019913c972f4edcc6edb740" -dependencies = [ - "bincode_derive", - "serde", - "unty", -] - -[[package]] -name = "bincode_derive" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf95709a440f45e986983918d0e8a1f30a9b1df04918fc828670606804ac3c09" -dependencies = [ - "virtue", -] - -[[package]] -name = "bindgen" -version = "0.70.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" -dependencies = [ - "bitflags 2.10.0", - "cexpr", - "clang-sys", - "itertools 0.13.0", - "log", - "prettyplease", - "proc-macro2", - "quote", - "regex", - "rustc-hash 1.1.0", - "shlex", - "syn 2.0.113", -] - -[[package]] -name = "bindgen" -version = "0.71.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f58bf3d7db68cfbac37cfc485a8d711e87e064c3d0fe0435b92f7a407f9d6b3" -dependencies = [ - "bitflags 2.10.0", - "cexpr", - "clang-sys", - "itertools 0.13.0", - "log", - "prettyplease", - "proc-macro2", - "quote", - "regex", - "rustc-hash 2.1.1", - "shlex", - "syn 2.0.113", -] - -[[package]] -name = "bindgen" -version = "0.72.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" -dependencies = [ - "bitflags 2.10.0", - "cexpr", - "clang-sys", - "itertools 0.13.0", - "log", - "prettyplease", - "proc-macro2", - "quote", - "regex", - "rustc-hash 2.1.1", - "shlex", - "syn 2.0.113", -] - -[[package]] -name = "bitbybit" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec187a89ab07e209270175faf9e07ceb2755d984954e58a2296e325ddece2762" -dependencies = [ - "arbitrary-int 1.3.0", - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" - -[[package]] -name = "bitvec" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" -dependencies = [ - "funty", - "radium", - "serde", - "tap", - "wyz", -] - -[[package]] -name = "blake3" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b64485778c4f16a6a5a9d335e80d449ac6c70cdd6a06d2af18a6f6f775a125b3" -dependencies = [ - "arrayref", - "arrayvec 0.5.2", - "cc", - "cfg-if 0.1.10", - "constant_time_eq 0.1.5", - "crypto-mac 0.8.0", - "digest 0.9.0", -] - -[[package]] -name = "blake3" -version = "1.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0" -dependencies = [ - "arrayref", - "arrayvec 0.7.6", - "cc", - "cfg-if 1.0.4", - "constant_time_eq 0.3.1", - "memmap2", - "rayon-core", -] - -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "generic-array", -] - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "block2" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" -dependencies = [ - "objc2", -] - -[[package]] -name = "blocking" -version = "1.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21" -dependencies = [ - "async-channel 2.5.0", - "async-task", - "futures-io", - "futures-lite 2.6.1", - "piper", -] - -[[package]] -name = "bstr" -version = "1.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63044e1ae8e69f3b5a92c736ca6269b8d12fa7efe39bf34ddb06d102cf0e2cab" -dependencies = [ - "memchr", - "regex-automata", - "serde", -] - -[[package]] -name = "build_and_test_fuzzers" -version = "0.16.0" -dependencies = [ - "cargo_toml", - "walkdir", -] - -[[package]] -name = "build_id2" -version = "0.16.0" -dependencies = [ - "ahash", - "rustversion", - "uuid", -] - -[[package]] -name = "bumpalo" -version = "3.19.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" - -[[package]] -name = "bytecount" -version = "0.6.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "175812e0be2bccb6abe50bb8d566126198344f707e304f45c648fd8f2cc0365e" - -[[package]] -name = "bytemuck" -version = "1.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" - -[[package]] -name = "byteorder" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fc10e8cc6b2580fda3f36eb6dc5316657f812a3df879a44a66fc9f0fdbc4855" - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "bytes" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" - -[[package]] -name = "bytes-utils" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dafe3a8757b027e2be6e4e5601ed563c55989fcf1546e933c66c8eb3a058d35" -dependencies = [ - "bytes", - "either", -] - -[[package]] -name = "cadence" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3075f133bee430b7644c54fb629b9b4420346ffa275a45c81a6babe8b09b4f51" -dependencies = [ - "crossbeam-channel", -] - -[[package]] -name = "camino" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e629a66d692cb9ff1a1c664e41771b3dcaf961985a9774c0eb0bd1b51cf60a48" -dependencies = [ - "serde_core", -] - -[[package]] -name = "caps" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd1ddba47aba30b6a889298ad0109c3b8dcb0e8fc993b459daa7067d46f865e0" -dependencies = [ - "libc", -] - -[[package]] -name = "capstone" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f442ae0f2f3f1b923334b4a5386c95c69c1cfa072bafa23d6fae6d9682eb1dd4" -dependencies = [ - "capstone-sys", - "static_assertions", -] - -[[package]] -name = "capstone-sys" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4e8087cab6731295f5a2a2bd82989ba4f41d3a428aab2e7c98d8f4db38aac05" -dependencies = [ - "cc", -] - -[[package]] -name = "cargo-platform" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" -dependencies = [ - "serde", -] - -[[package]] -name = "cargo_metadata" -version = "0.19.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" -dependencies = [ - "camino", - "cargo-platform", - "semver 1.0.27", - "serde", - "serde_json", - "thiserror 2.0.17", -] - -[[package]] -name = "cargo_toml" -version = "0.22.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "374b7c592d9c00c1f4972ea58390ac6b18cbb6ab79011f3bdc90a0b82ca06b77" -dependencies = [ - "serde", - "toml 0.9.10+spec-1.1.0", -] - -[[package]] -name = "cast" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" - -[[package]] -name = "castaway" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dec551ab6e7578819132c713a93c022a05d60159dc86e7a7050223577484c55a" -dependencies = [ - "rustversion", -] - -[[package]] -name = "cbindgen" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eadd868a2ce9ca38de7eeafdcec9c7065ef89b42b32f0839278d55f35c54d1ff" -dependencies = [ - "clap", - "heck 0.4.1", - "indexmap", - "log", - "proc-macro2", - "quote", - "serde", - "serde_json", - "syn 2.0.113", - "tempfile", - "toml 0.8.23", -] - -[[package]] -name = "cc" -version = "1.2.51" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a0aeaff4ff1a90589618835a598e545176939b97874f7abc7851caa0618f203" -dependencies = [ - "find-msvc-tools", - "jobserver", - "libc", - "shlex", -] - -[[package]] -name = "cexpr" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" -dependencies = [ - "nom", -] - -[[package]] -name = "cfg-if" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" - -[[package]] -name = "cfg-if" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" - -[[package]] -name = "cfg_aliases" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" - -[[package]] -name = "chrono" -version = "0.4.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" -dependencies = [ - "iana-time-zone", - "js-sys", - "num-traits", - "serde", - "wasm-bindgen", - "windows-link", -] - -[[package]] -name = "ci_runner" -version = "0.16.0" - -[[package]] -name = "ci_splitter" -version = "0.16.0" - -[[package]] -name = "ciborium" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" -dependencies = [ - "ciborium-io", - "ciborium-ll", - "serde", -] - -[[package]] -name = "ciborium-io" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" - -[[package]] -name = "ciborium-ll" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" -dependencies = [ - "ciborium-io", - "half", -] - -[[package]] -name = "cipher" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801" -dependencies = [ - "generic-array", -] - -[[package]] -name = "clang-sys" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" -dependencies = [ - "glob", - "libc", - "libloading 0.8.9", -] - -[[package]] -name = "clap" -version = "4.5.54" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6e6ff9dcd79cff5cd969a17a545d79e84ab086e444102a591e288a8aa3ce394" -dependencies = [ - "clap_builder", - "clap_derive", -] - -[[package]] -name = "clap_builder" -version = "4.5.54" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa42cf4d2b7a41bc8f663a7cab4031ebafa1bf3875705bfaf8466dc60ab52c00" -dependencies = [ - "anstream", - "anstyle", - "clap_lex", - "strsim", - "terminal_size", -] - -[[package]] -name = "clap_derive" -version = "4.5.49" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671" -dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "clap_lex" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" - -[[package]] -name = "clap_mangen" -version = "0.2.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ea63a92086df93893164221ad4f24142086d535b3a0957b9b9bea2dc86301" -dependencies = [ - "clap", - "roff", -] - -[[package]] -name = "cmake" -version = "0.1.57" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75443c44cd6b379beb8c5b45d85d0773baf31cce901fe7bb252f4eff3008ef7d" -dependencies = [ - "cc", -] - -[[package]] -name = "cobs" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa961b519f0b462e3a3b4a34b64d119eeaca1d59af726fe450bbba07a9fc0a1" -dependencies = [ - "thiserror 2.0.17", -] - -[[package]] -name = "codespan-reporting" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af491d569909a7e4dee0ad7db7f5341fef5c614d5b8ec8cf765732aba3cff681" -dependencies = [ - "serde", - "termcolor", - "unicode-width", -] - -[[package]] -name = "color-backtrace" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "308329d5d62e877ba02943db3a8e8c052de9fde7ab48283395ba0e6494efbabd" -dependencies = [ - "backtrace", - "regex", - "termcolor", -] - -[[package]] -name = "colorchoice" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" - -[[package]] -name = "colored" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c" -dependencies = [ - "lazy_static", - "windows-sys 0.59.0", -] - -[[package]] -name = "combine" -version = "4.6.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" -dependencies = [ - "bytes", - "memchr", -] - -[[package]] -name = "compact_str" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb1325a1cece981e8a296ab8f0f9b63ae357bd0784a9faaf548cc7b480707a" -dependencies = [ - "castaway", - "cfg-if 1.0.4", - "itoa", - "rustversion", - "ryu", - "static_assertions", -] - -[[package]] -name = "concurrent-queue" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "const_fn" -version = "0.4.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f8a2ca5ac02d09563609681103aada9e1777d54fc57a5acd7a41404f9c93b6e" - -[[package]] -name = "const_format" -version = "0.2.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7faa7469a93a566e9ccc1c73fe783b4a65c274c5ace346038dca9c39fe0030ad" -dependencies = [ - "const_format_proc_macros", -] - -[[package]] -name = "const_format_proc_macros" -version = "0.2.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d57c2eccfb16dbac1f4e61e206105db5820c9d26c3c472bc17c774259ef7744" -dependencies = [ - "proc-macro2", - "quote", - "unicode-xid", -] - -[[package]] -name = "const_panic" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e262cdaac42494e3ae34c43969f9cdeb7da178bdb4b66fa6a1ea2edb4c8ae652" -dependencies = [ - "typewit", -] - -[[package]] -name = "constant_time_eq" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" - -[[package]] -name = "constant_time_eq" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" - -[[package]] -name = "construct_automata" -version = "0.16.0" -dependencies = [ - "clap", - "libafl", - "postcard", - "regex", - "serde_json", -] - -[[package]] -name = "convert_case" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "633458d4ef8c78b72454de2d54fd6ab2e60f9e02be22f3c6104cdc8a4e0fceb9" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "cookie" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03a5d7b21829bc7b4bf4754a978a241ae54ea55a40f92bb20216e54096f4b951" -dependencies = [ - "aes-gcm", - "base64 0.13.1", - "hkdf", - "hmac 0.10.1", - "percent-encoding", - "rand 0.8.5", - "sha2 0.9.9", - "time 0.2.27", - "version_check", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - -[[package]] -name = "core_affinity2" -version = "0.16.0" -dependencies = [ - "document-features", - "libafl_core", - "libc", - "rustversion", - "serde", - "windows 0.62.2", -] - -[[package]] -name = "cpp_demangle" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2bb79cb74d735044c972aae58ed0aaa9a837e85b01106a54c39e42e97f62253" -dependencies = [ - "cfg-if 1.0.4", -] - -[[package]] -name = "cpufeatures" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" -dependencies = [ - "libc", -] - -[[package]] -name = "cpuid-bool" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcb25d077389e53838a8158c8e99174c5a9d902dee4904320db714f3c653ffba" - -[[package]] -name = "crc32fast" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" -dependencies = [ - "cfg-if 1.0.4", -] - -[[package]] -name = "criterion" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d883447757bb0ee46f233e9dc22eb84d93a9508c9b868687b274fc431d886bf" -dependencies = [ - "alloca", - "anes", - "cast", - "ciborium", - "clap", - "criterion-plot", - "itertools 0.13.0", - "num-traits", - "oorandom", - "page_size", - "plotters", - "rayon", - "regex", - "serde", - "serde_json", - "tinytemplate", - "walkdir", -] - -[[package]] -name = "criterion-plot" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed943f81ea2faa8dcecbbfa50164acf95d555afec96a27871663b300e387b2e4" -dependencies = [ - "cast", - "itertools 0.13.0", -] - -[[package]] -name = "crossbeam-channel" -version = "0.5.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" - -[[package]] -name = "crossterm" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df" -dependencies = [ - "bitflags 2.10.0", - "crossterm_winapi", - "libc", - "mio 0.8.11", - "parking_lot", - "signal-hook", - "signal-hook-mio", - "winapi", -] - -[[package]] -name = "crossterm" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b" -dependencies = [ - "bitflags 2.10.0", - "crossterm_winapi", - "derive_more", - "document-features", - "mio 1.1.1", - "parking_lot", - "rustix 1.1.3", - "signal-hook", - "signal-hook-mio", - "winapi", -] - -[[package]] -name = "crossterm_winapi" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" -dependencies = [ - "winapi", -] - -[[package]] -name = "crunchy" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" - -[[package]] -name = "crypto-common" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "crypto-mac" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" -dependencies = [ - "generic-array", - "subtle", -] - -[[package]] -name = "crypto-mac" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4857fd85a0c34b3c3297875b747c1e02e06b6a0ea32dd892d8192b9ce0813ea6" -dependencies = [ - "generic-array", - "subtle", -] - -[[package]] -name = "cstr_core" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd98742e4fdca832d40cab219dc2e3048de17d873248f83f17df47c1bea70956" -dependencies = [ - "cty", - "memchr", -] - -[[package]] -name = "ctor" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "424e0138278faeb2b401f174ad17e715c829512d74f3d1e81eb43365c2e0590e" -dependencies = [ - "ctor-proc-macro", - "dtor", -] - -[[package]] -name = "ctor-proc-macro" -version = "0.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52560adf09603e58c9a7ee1fe1dcb95a16927b17c127f0ac02d6e768a0e25bc1" - -[[package]] -name = "ctr" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb4a30d54f7443bf3d6191dcd486aca19e67cb3c49fa7a06a319966346707e7f" -dependencies = [ - "cipher", -] - -[[package]] -name = "ctrlc" -version = "3.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73736a89c4aff73035ba2ed2e565061954da00d4970fc9ac25dcc85a2a20d790" -dependencies = [ - "dispatch2", - "nix 0.30.1", - "windows-sys 0.61.2", -] - -[[package]] -name = "cty" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35" - -[[package]] -name = "cxx" -version = "1.0.190" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7620f6cfc4dcca21f2b085b7a890e16c60fd66f560cd69ee60594908dc72ab1" -dependencies = [ - "cc", - "cxx-build", - "cxxbridge-cmd", - "cxxbridge-flags", - "cxxbridge-macro", - "foldhash", - "link-cplusplus", -] - -[[package]] -name = "cxx-build" -version = "1.0.190" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a9bc1a22964ff6a355fbec24cf68266a0ed28f8b84c0864c386474ea3d0e479" -dependencies = [ - "cc", - "codespan-reporting", - "indexmap", - "proc-macro2", - "quote", - "scratch", - "syn 2.0.113", -] - -[[package]] -name = "cxxbridge-cmd" -version = "1.0.190" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f29a879d35f7906e3c9b77d7a1005a6a0787d330c09dfe4ffb5f617728cb44" -dependencies = [ - "clap", - "codespan-reporting", - "indexmap", - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "cxxbridge-flags" -version = "1.0.190" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d67109015f93f683e364085aa6489a5b2118b4a40058482101d699936a7836d6" - -[[package]] -name = "cxxbridge-macro" -version = "1.0.190" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d187e019e7b05a1f3e69a8396b70800ee867aa9fc2ab972761173ccee03742df" -dependencies = [ - "indexmap", - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "darling" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" -dependencies = [ - "darling_core 0.20.11", - "darling_macro 0.20.11", -] - -[[package]] -name = "darling" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" -dependencies = [ - "darling_core 0.23.0", - "darling_macro 0.23.0", -] - -[[package]] -name = "darling_core" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 2.0.113", -] - -[[package]] -name = "darling_core" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" -dependencies = [ - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 2.0.113", -] - -[[package]] -name = "darling_macro" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" -dependencies = [ - "darling_core 0.20.11", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "darling_macro" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" -dependencies = [ - "darling_core 0.23.0", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "deexit" -version = "0.16.0" -dependencies = [ - "log", -] - -[[package]] -name = "deranged" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" -dependencies = [ - "powerfmt", -] - -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "derive-where" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef941ded77d15ca19b40374869ac6000af1c9f2a4c0f3d4c70926287e6364a8f" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "derive_arbitrary" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "derive_builder" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947" -dependencies = [ - "derive_builder_macro", -] - -[[package]] -name = "derive_builder_core" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8" -dependencies = [ - "darling 0.20.11", - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "derive_builder_macro" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" -dependencies = [ - "derive_builder_core", - "syn 2.0.113", -] - -[[package]] -name = "derive_more" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134" -dependencies = [ - "derive_more-impl", -] - -[[package]] -name = "derive_more-impl" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb" -dependencies = [ - "convert_case", - "proc-macro2", - "quote", - "rustc_version 0.4.1", - "syn 2.0.113", -] - -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer 0.10.4", - "crypto-common", -] - -[[package]] -name = "dirs" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" -dependencies = [ - "dirs-sys", -] - -[[package]] -name = "dirs-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" -dependencies = [ - "libc", - "option-ext", - "redox_users", - "windows-sys 0.61.2", -] - -[[package]] -name = "discard" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0" - -[[package]] -name = "dispatch2" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec" -dependencies = [ - "bitflags 2.10.0", - "block2", - "libc", - "objc2", -] - -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "dlmalloc" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6738d2e996274e499bc7b0d693c858b7720b9cd2543a0643a3087e6cb0a4fa16" -dependencies = [ - "cfg-if 1.0.4", - "libc", - "windows-sys 0.61.2", -] - -[[package]] -name = "doc-comment" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "780955b8b195a21ab8e4ac6b60dd1dbdcec1dc6c51c0617964b08c81785e12c9" - -[[package]] -name = "document-features" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61" -dependencies = [ - "litrs", -] - -[[package]] -name = "dotenvy" -version = "0.15.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" - -[[package]] -name = "downcast" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" - -[[package]] -name = "drcov_utils" -version = "0.16.0" -dependencies = [ - "clap", - "env_logger", - "libafl_targets", - "walkdir", -] - -[[package]] -name = "dtoa" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c3cf4824e2d5f025c7b531afcb2325364084a16806f6d47fbc1f5fbd9960590" - -[[package]] -name = "dtor" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "404d02eeb088a82cfd873006cb713fe411306c7d182c344905e101fb1167d301" -dependencies = [ - "dtor-proc-macro", -] - -[[package]] -name = "dtor-proc-macro" -version = "0.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f678cf4a922c215c63e0de95eb1ff08a958a81d47e485cf9da1e27bf6305cfa5" - -[[package]] -name = "dump_constraints" -version = "0.16.0" -dependencies = [ - "clap", - "libafl", - "libafl_bolts", -] - -[[package]] -name = "dynasm" -version = "4.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d36219658beb39702975c707dee7895943ca281ca46eebbc5ea395171b9c182b" -dependencies = [ - "bitflags 2.10.0", - "byteorder 1.5.0", - "lazy_static", - "proc-macro-error2", - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "dynasmrt" -version = "4.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bc32ed2a02b82bc43a7631dd624e8c5731a8377e40a468da28e62fc2e028952" -dependencies = [ - "byteorder 1.5.0", - "dynasm", - "fnv", - "memmap2", -] - -[[package]] -name = "edit-distance" -version = "2.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "324d428080b707bac399325341bd61af5ded1b30f33b7c949792ca464733c2d5" - -[[package]] -name = "either" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" - -[[package]] -name = "embedded-io" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" - -[[package]] -name = "embedded-io" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" - -[[package]] -name = "enum-as-inner" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" -dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "enum-map" -version = "2.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6866f3bfdf8207509a033af1a75a7b08abda06bbaaeae6669323fd5a097df2e9" -dependencies = [ - "enum-map-derive", -] - -[[package]] -name = "enum-map-derive" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "enumflags2" -version = "0.7.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1027f7680c853e056ebcec683615fb6fbbc07dbaa13b4d5d9442b146ded4ecef" -dependencies = [ - "enumflags2_derive", -] - -[[package]] -name = "enumflags2_derive" -version = "0.7.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "env_filter" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bf3c259d255ca70051b30e2e95b5446cdb8949ac4cd22c0d7fd634d89f568e2" -dependencies = [ - "log", - "regex", -] - -[[package]] -name = "env_home" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7f84e12ccf0a7ddc17a6c41c93326024c42920d7ee630d04950e6926645c0fe" - -[[package]] -name = "env_logger" -version = "0.11.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c863f0904021b108aa8b2f55046443e6b1ebde8fd4a15c399893aae4fa069f" -dependencies = [ - "anstream", - "anstyle", - "env_filter", - "jiff", - "log", -] - -[[package]] -name = "equivalent" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" - -[[package]] -name = "erased-serde" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89e8918065695684b2b0702da20382d5ae6065cf3327bc2d6436bd49a71ce9f3" -dependencies = [ - "serde", - "serde_core", - "typeid", -] - -[[package]] -name = "errno" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" -dependencies = [ - "libc", - "windows-sys 0.61.2", -] - -[[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - -[[package]] -name = "event-listener" -version = "5.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite 0.2.16", -] - -[[package]] -name = "event-listener-strategy" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" -dependencies = [ - "event-listener 5.4.1", - "pin-project-lite 0.2.16", -] - -[[package]] -name = "exceptional" -version = "0.16.0" -dependencies = [ - "document-features", - "libafl_core", - "libc", - "log", - "nix 0.30.1", - "num_enum", - "rustversion", - "windows 0.62.2", - "windows-core 0.62.2", -] - -[[package]] -name = "fallible-iterator" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" - -[[package]] -name = "fast_rands" -version = "0.16.0" -dependencies = [ - "document-features", - "pyo3", - "rand_core 0.9.3", - "rustversion", - "serde", -] - -[[package]] -name = "fastbloom" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18c1ddb9231d8554c2d6bdf4cfaabf0c59251658c68b6c95cd52dd0c513a912a" -dependencies = [ - "getrandom 0.3.4", - "libm", - "serde", - "siphasher", -] - -[[package]] -name = "fastrand" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" -dependencies = [ - "instant", -] - -[[package]] -name = "fastrand" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" - -[[package]] -name = "femme" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc04871e5ae3aa2952d552dae6b291b3099723bf779a8054281c1366a54613ef" -dependencies = [ - "cfg-if 1.0.4", - "js-sys", - "log", - "serde", - "serde_derive", - "serde_json", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "filetime" -version = "0.2.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed" -dependencies = [ - "cfg-if 1.0.4", - "libc", - "libredox", - "windows-sys 0.60.2", -] - -[[package]] -name = "find-msvc-tools" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645cbb3a84e60b7531617d5ae4e57f7e27308f6445f5abf653209ea76dec8dff" - -[[package]] -name = "flate2" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb" -dependencies = [ - "crc32fast", - "miniz_oxide", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foldhash" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" - -[[package]] -name = "form_urlencoded" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "fragile" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dd6caf6059519a65843af8fe2a3ae298b14b80179855aeb4adc2c1934ee619" - -[[package]] -name = "frida-build" -version = "0.17.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b2bfd0477ee2547fc2d570093195c296a450d14af4e425b8fda3bec16ab45e" -dependencies = [ - "reqwest", - "tar", - "xz", -] - -[[package]] -name = "frida-gum" -version = "0.17.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd5efd85d460937270f47accc16c632b414e1b670d5172dbdafc837b9bcd589a" -dependencies = [ - "bitflags 2.10.0", - "cstr_core", - "frida-gum-sys", - "libc", - "num", - "num-derive", - "num-traits", - "paste", - "spin 0.10.0", -] - -[[package]] -name = "frida-gum-sys" -version = "0.17.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d5f936b2f6290bede23c6424b69bff7b8adc949101aba7c57b95754d198e526" -dependencies = [ - "bindgen 0.72.1", - "cc", - "frida-build", -] - -[[package]] -name = "fs2" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "fs4" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cef5c93884e5cef757f63446122c2f420713c3e03f85540d09485b9415983b4a" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "funty" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" - -[[package]] -name = "futures" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" - -[[package]] -name = "futures-executor" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-io" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" - -[[package]] -name = "futures-lite" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" -dependencies = [ - "fastrand 1.9.0", - "futures-core", - "futures-io", - "memchr", - "parking", - "pin-project-lite 0.2.16", - "waker-fn", -] - -[[package]] -name = "futures-lite" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" -dependencies = [ - "fastrand 2.3.0", - "futures-core", - "futures-io", - "parking", - "pin-project-lite 0.2.16", -] - -[[package]] -name = "futures-macro" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "futures-sink" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" - -[[package]] -name = "futures-task" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" - -[[package]] -name = "futures-util" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite 0.2.16", - "pin-utils", - "slab", -] - -[[package]] -name = "gdb-command" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73b2762e2f2c0768e1137b33e9f7cf31599994e96496f4e020cc16e0d4e66319" -dependencies = [ - "regex", - "wait-timeout", -] - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "getrandom" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" -dependencies = [ - "cfg-if 1.0.4", - "libc", - "wasi 0.9.0+wasi-snapshot-preview1", -] - -[[package]] -name = "getrandom" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" -dependencies = [ - "cfg-if 1.0.4", - "js-sys", - "libc", - "wasi 0.11.1+wasi-snapshot-preview1", - "wasm-bindgen", -] - -[[package]] -name = "getrandom" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" -dependencies = [ - "cfg-if 1.0.4", - "js-sys", - "libc", - "r-efi", - "wasip2", - "wasm-bindgen", -] - -[[package]] -name = "getset" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf0fc11e47561d47397154977bc219f4cf809b2974facc3ccb3b89e2436f912" -dependencies = [ - "proc-macro-error2", - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "ghash" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97304e4cd182c3846f7575ced3890c53012ce534ad9114046b0a9e00bb30a375" -dependencies = [ - "opaque-debug", - "polyval", -] - -[[package]] -name = "gimli" -version = "0.32.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7" -dependencies = [ - "fallible-iterator", - "stable_deref_trait", -] - -[[package]] -name = "git2" -version = "0.20.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e2b37e2f62729cdada11f0e6b3b6fe383c69c29fc619e391223e12856af308c" -dependencies = [ - "bitflags 2.10.0", - "libc", - "libgit2-sys", - "log", - "openssl-probe", - "openssl-sys", - "url", -] - -[[package]] -name = "glob" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" - -[[package]] -name = "gloo-timers" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" -dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "goblin" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4db6758c546e6f81f265638c980e5e84dfbda80cfd8e89e02f83454c8e8124bd" -dependencies = [ - "log", - "plain", - "scroll", -] - -[[package]] -name = "half" -version = "2.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" -dependencies = [ - "cfg-if 1.0.4", - "crunchy", - "zerocopy", -] - -[[package]] -name = "hashbrown" -version = "0.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" -dependencies = [ - "allocator-api2", - "equivalent", - "foldhash", - "serde", - "serde_core", -] - -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "hermit-abi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" - -[[package]] -name = "hermit-abi" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" - -[[package]] -name = "hkdf" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51ab2f639c231793c5f6114bdb9bbe50a7dbbfcd7c7c6bd8475dec2d991e964f" -dependencies = [ - "digest 0.9.0", - "hmac 0.10.1", -] - -[[package]] -name = "hmac" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840" -dependencies = [ - "crypto-mac 0.8.0", - "digest 0.9.0", -] - -[[package]] -name = "hmac" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1441c6b1e930e2817404b5046f1f989899143a12bf92de603b69f4e0aee1e15" -dependencies = [ - "crypto-mac 0.10.0", - "digest 0.9.0", -] - -[[package]] -name = "hostname" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "617aaa3557aef3810a6369d0a99fac8a080891b68bd9f9812a1eeda0c0730cbd" -dependencies = [ - "cfg-if 1.0.4", - "libc", - "windows-link", -] - -[[package]] -name = "http" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" -dependencies = [ - "bytes", - "itoa", -] - -[[package]] -name = "http-body" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" -dependencies = [ - "bytes", - "http", -] - -[[package]] -name = "http-body-util" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" -dependencies = [ - "bytes", - "futures-core", - "http", - "http-body", - "pin-project-lite 0.2.16", -] - -[[package]] -name = "http-client" -version = "6.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1947510dc91e2bf586ea5ffb412caad7673264e14bb39fb9078da114a94ce1a5" -dependencies = [ - "async-trait", - "cfg-if 1.0.4", - "http-types", - "log", -] - -[[package]] -name = "http-types" -version = "2.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e9b187a72d63adbfba487f48095306ac823049cb504ee195541e91c7775f5ad" -dependencies = [ - "anyhow", - "async-channel 1.9.0", - "async-std", - "base64 0.13.1", - "cookie", - "futures-lite 1.13.0", - "infer", - "pin-project-lite 0.2.16", - "rand 0.7.3", - "serde", - "serde_json", - "serde_qs", - "serde_urlencoded", - "url", -] - -[[package]] -name = "httparse" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" - -[[package]] -name = "hyper" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11" -dependencies = [ - "atomic-waker", - "bytes", - "futures-channel", - "futures-core", - "http", - "http-body", - "httparse", - "itoa", - "pin-project-lite 0.2.16", - "pin-utils", - "smallvec", - "tokio", - "want", -] - -[[package]] -name = "hyper-rustls" -version = "0.27.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" -dependencies = [ - "http", - "hyper", - "hyper-util", - "rustls", - "rustls-pki-types", - "tokio", - "tokio-rustls", - "tower-service", - "webpki-roots", -] - -[[package]] -name = "hyper-util" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "727805d60e7938b76b826a6ef209eb70eaa1812794f9424d4a4e2d740662df5f" -dependencies = [ - "base64 0.22.1", - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "http", - "http-body", - "hyper", - "ipnet", - "libc", - "percent-encoding", - "pin-project-lite 0.2.16", - "socket2 0.6.1", - "tokio", - "tower-service", - "tracing", -] - -[[package]] -name = "iana-time-zone" -version = "0.1.64" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "log", - "wasm-bindgen", - "windows-core 0.62.2", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = [ - "cc", -] - -[[package]] -name = "iced-x86" -version = "1.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c447cff8c7f384a7d4f741cfcff32f75f3ad02b406432e8d6c878d56b1edf6b" -dependencies = [ - "lazy_static", -] - -[[package]] -name = "icu_collections" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" -dependencies = [ - "displaydoc", - "potential_utf", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locale_core" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_normalizer" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" -dependencies = [ - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" - -[[package]] -name = "icu_properties" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" -dependencies = [ - "icu_collections", - "icu_locale_core", - "icu_properties_data", - "icu_provider", - "zerotrie", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" - -[[package]] -name = "icu_provider" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" -dependencies = [ - "displaydoc", - "icu_locale_core", - "writeable", - "yoke", - "zerofrom", - "zerotrie", - "zerovec", -] - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "idna" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - -[[package]] -name = "indexmap" -version = "2.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2" -dependencies = [ - "equivalent", - "hashbrown", -] - -[[package]] -name = "indoc" -version = "2.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706" -dependencies = [ - "rustversion", -] - -[[package]] -name = "infer" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64e9829a50b42bb782c1df523f78d332fe371b10c661e78b7a3c34b0198e9fac" - -[[package]] -name = "instability" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "357b7205c6cd18dd2c86ed312d1e70add149aea98e7ef72b9fdf0270e555c11d" -dependencies = [ - "darling 0.23.0", - "indoc", - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "instant" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" -dependencies = [ - "cfg-if 1.0.4", -] - -[[package]] -name = "inventory" -version = "0.3.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc61209c082fbeb19919bee74b176221b27223e27b65d781eb91af24eb1fb46e" -dependencies = [ - "rustversion", -] - -[[package]] -name = "io-lifetimes" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" -dependencies = [ - "hermit-abi 0.3.9", - "libc", - "windows-sys 0.48.0", -] - -[[package]] -name = "ipnet" -version = "2.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" - -[[package]] -name = "iri-string" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c91338f0783edbd6195decb37bae672fd3b165faffb89bf7b9e6942f8b1a731a" -dependencies = [ - "memchr", - "serde", -] - -[[package]] -name = "is_executable" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baabb8b4867b26294d818bf3f651a454b6901431711abb96e296245888d6e8c4" -dependencies = [ - "windows-sys 0.60.2", -] - -[[package]] -name = "is_terminal_polyfill" -version = "1.70.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" - -[[package]] -name = "itertools" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" - -[[package]] -name = "jiff" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e67e8da4c49d6d9909fe03361f9b620f58898859f5c7aded68351e85e71ecf50" -dependencies = [ - "jiff-static", - "log", - "portable-atomic", - "portable-atomic-util", - "serde_core", -] - -[[package]] -name = "jiff-static" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0c84ee7f197eca9a86c6fd6cb771e55eb991632f15f2bc3ca6ec838929e6e78" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "jobserver" -version = "0.1.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" -dependencies = [ - "getrandom 0.3.4", - "libc", -] - -[[package]] -name = "js-sys" -version = "0.3.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - -[[package]] -name = "json" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "078e285eafdfb6c4b434e0d31e8cfcb5115b651496faca5749b88fafd4f23bfd" - -[[package]] -name = "just" -version = "1.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eecd1c97e8468a505ac0c4d10db186ddaea8f05c635e73af7ae32c95f25773a" -dependencies = [ - "ansi_term", - "blake3 1.8.2", - "camino", - "chrono", - "clap", - "clap_mangen", - "ctrlc", - "derive-where", - "dirs", - "dotenvy", - "edit-distance", - "heck 0.5.0", - "is_executable", - "lexiclean", - "libc", - "nix 0.30.1", - "num_cpus", - "percent-encoding", - "rand 0.9.2", - "regex", - "rustversion", - "semver 1.0.27", - "serde", - "serde_json", - "sha2 0.10.9", - "shellexpand", - "similar", - "snafu 0.8.9", - "strum", - "target", - "tempfile", - "typed-arena", - "unicode-width", - "uuid", -] - -[[package]] -name = "kasuari" -version = "0.4.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fe90c1150662e858c7d5f945089b7517b0a80d8bf7ba4b1b5ffc984e7230a5b" -dependencies = [ - "hashbrown", - "portable-atomic", - "thiserror 2.0.17", -] - -[[package]] -name = "kodama" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f868feceed4703c842925c14232667c5f29c8059d0354154b2d06ec3bf9daf82" - -[[package]] -name = "kv-log-macro" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" -dependencies = [ - "log", -] - -[[package]] -name = "lazy_static" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" - -[[package]] -name = "lexiclean" -version = "0.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "441225017b106b9f902e97947a6d31e44ebcf274b91bdbfb51e5c477fcd468e5" - -[[package]] -name = "libafl" -version = "0.16.0" -dependencies = [ - "ahash", - "arbitrary-int 2.0.0", - "arrayvec 0.7.6", - "async-std", - "backtrace", - "bincode 2.0.1", - "bitbybit", - "bitvec", - "bytecount", - "cadence", - "clap", - "const_format", - "const_panic", - "crossterm 0.29.0", - "document-features", - "enumflags2", - "fastbloom", - "fs2", - "futures", - "hashbrown", - "libafl_bolts", - "libafl_core", - "libafl_derive", - "libafl_intelpt", - "libc", - "libcasr", - "libm", - "ll_mp", - "log", - "meminterval", - "mlua", - "nix 0.30.1", - "no_std_time", - "num-traits", - "num_enum", - "postcard", - "prometheus-client", - "pyo3", - "ratatui", - "regex", - "regex-syntax", - "rustversion", - "send_wrapper", - "serde", - "serde_json", - "serial_test", - "static_assertions", - "tide", - "tokio", - "tuple_list", - "tuple_list_ex", - "typed-builder", - "uuid", - "wait-timeout", - "winapi", - "windows 0.62.2", - "z3", -] - -[[package]] -name = "libafl_asan" -version = "0.16.0" -dependencies = [ - "ahash", - "baby-mimalloc", - "bitflags 2.10.0", - "cc", - "dlmalloc", - "document-features", - "env_logger", - "hashbrown", - "itertools 0.14.0", - "libc", - "log", - "mockall", - "nostd-musl", - "nostd-printf", - "readonly", - "rustix 1.1.3", - "spin 0.10.0", - "syscalls", - "thiserror 2.0.17", - "widestring", -] - -[[package]] -name = "libafl_asan_fuzz" -version = "0.16.0" -dependencies = [ - "arbitrary", - "env_logger", - "libafl_asan", - "libfuzzer-sys", - "log", - "mockall", - "thiserror 2.0.17", -] - -[[package]] -name = "libafl_asan_libc" -version = "0.16.0" - -[[package]] -name = "libafl_benches" -version = "0.16.0" -dependencies = [ - "ahash", - "criterion", - "libafl_bolts", - "rustc-hash 2.1.1", - "xxhash-rust", -] - -[[package]] -name = "libafl_bolts" -version = "0.16.0" -dependencies = [ - "ahash", - "backtrace", - "build_id2", - "chrono", - "clap", - "core_affinity2", - "ctor", - "document-features", - "erased-serde", - "exceptional", - "fast_rands", - "hashbrown", - "hostname", - "itertools 0.14.0", - "libafl_core", - "libafl_derive", - "libc", - "ll_mp", - "log", - "mach2 0.6.0", - "minibsod", - "miniz_oxide", - "nix 0.30.1", - "no_std_time", - "nonzero_macros", - "num_enum", - "ownedref", - "postcard", - "pyo3", - "rand 0.9.2", - "rustversion", - "serde", - "serde_anymap", - "serial_test", - "shmem_providers", - "static_assertions", - "tuple_list", - "tuple_list_ex", - "typeid", - "uds", - "wide", - "winapi", - "windows 0.62.2", - "windows-result 0.4.1", - "xxhash-rust", -] - -[[package]] -name = "libafl_cc" -version = "0.16.0" -dependencies = [ - "cc", - "glob", - "serde", - "which", -] - -[[package]] -name = "libafl_core" -version = "0.16.0" -dependencies = [ - "backtrace", - "document-features", - "nix 0.30.1", - "nonzero_macros", - "postcard", - "pyo3", - "rustversion", - "serde", - "windows-result 0.4.1", -] - -[[package]] -name = "libafl_derive" -version = "0.16.0" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "libafl_frida" -version = "0.16.0" -dependencies = [ - "ahash", - "backtrace", - "cc", - "clap", - "color-backtrace", - "document-features", - "dynasmrt", - "errno", - "frida-gum", - "frida-gum-sys", - "hashbrown", - "iced-x86", - "libafl", - "libafl_bolts", - "libafl_targets", - "libc", - "libloading 0.9.0", - "log", - "mach-sys", - "mimalloc", - "mmap-rs", - "nix 0.30.1", - "num-traits", - "paste", - "rangemap", - "serde", - "serial_test", - "termcolor", - "winapi", - "winsafe 0.0.27", - "yaxpeax-arch", - "yaxpeax-arm", - "yaxpeax-x86", -] - -[[package]] -name = "libafl_intelpt" -version = "0.16.0" -dependencies = [ - "arbitrary-int 2.0.0", - "bitbybit", - "caps", - "libafl_bolts", - "libc", - "log", - "nix 0.30.1", - "num-traits", - "num_enum", - "perf-event-open-sys", - "proc-maps", - "ptcov", - "raw-cpuid", - "static_assertions", -] - -[[package]] -name = "libafl_jumper" -version = "0.16.0" -dependencies = [ - "cc", -] - -[[package]] -name = "libafl_libfuzzer" -version = "0.16.0" -dependencies = [ - "cc", - "document-features", - "libfuzzer-sys", - "rustversion", - "toml 0.9.10+spec-1.1.0", -] - -[[package]] -name = "libafl_nyx" -version = "0.16.0" -dependencies = [ - "libafl", - "libafl_bolts", - "libafl_targets", - "libnyx", - "nix 0.30.1", - "regex", - "serde", - "typed-builder", -] - -[[package]] -name = "libafl_qemu" -version = "0.16.0" -dependencies = [ - "addr2line", - "bytes-utils", - "capstone", - "document-features", - "enum-map", - "getset", - "goblin", - "hashbrown", - "just", - "libafl", - "libafl_bolts", - "libafl_core", - "libafl_derive", - "libafl_intelpt", - "libafl_qemu_sys", - "libafl_targets", - "libc", - "libvharness_sys", - "log", - "meminterval", - "num-traits", - "num_enum", - "object 0.38.1", - "paste", - "pyo3", - "pyo3-build-config 0.27.2", - "rangemap", - "rustversion", - "serde", - "serde_yaml", - "strum", - "strum_macros", - "syscall-numbers", - "thread_local", - "toml 0.9.10+spec-1.1.0", - "typed-builder", -] - -[[package]] -name = "libafl_qemu_build" -version = "0.16.0" -dependencies = [ - "bindgen 0.72.1", - "cc", - "json", - "rustc_version 0.4.1", - "rustversion", - "shell-words", - "which", -] - -[[package]] -name = "libafl_qemu_runner" -version = "0.16.0" -dependencies = [ - "clap", - "env_logger", - "libafl_bolts", - "libafl_qemu", - "log", - "readonly", - "thiserror 2.0.17", - "vergen", - "vergen-git2", -] - -[[package]] -name = "libafl_qemu_sys" -version = "0.16.0" -dependencies = [ - "libafl_qemu_build", - "libc", - "num_enum", - "paste", - "pyo3", - "pyo3-build-config 0.27.2", - "rustversion", - "strum", - "strum_macros", -] - -[[package]] -name = "libafl_sugar" -version = "0.16.0" -dependencies = [ - "document-features", - "libafl", - "libafl_bolts", - "libafl_qemu", - "libafl_targets", - "log", - "pyo3", - "pyo3-build-config 0.27.2", - "typed-builder", -] - -[[package]] -name = "libafl_targets" -version = "0.16.0" -dependencies = [ - "backtrace", - "bindgen 0.72.1", - "cc", - "document-features", - "fast_rands", - "hashbrown", - "libafl", - "libafl_bolts", - "libafl_core", - "libc", - "log", - "meminterval", - "nix 0.30.1", - "ownedref", - "rangemap", - "rustversion", - "serde", - "shmem_providers", -] - -[[package]] -name = "libafl_tinyinst" -version = "0.16.0" -dependencies = [ - "cmake", - "libafl", - "libafl_bolts", - "log", - "tinyinst", -] - -[[package]] -name = "libafl_unicorn" -version = "0.16.0" -dependencies = [ - "capstone", - "libafl_targets", - "log", - "unicorn-engine", -] - -[[package]] -name = "libc" -version = "0.2.179" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5a2d376baa530d1238d133232d15e239abad80d05838b4b59354e5268af431f" - -[[package]] -name = "libcasr" -version = "2.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "514a6dc41a86ec76877493b704a2e5ae7b8281a17ce5a3177fcddd1d6a06934b" -dependencies = [ - "chrono", - "gdb-command", - "kodama", - "regex", - "thiserror 2.0.17", -] - -[[package]] -name = "libfuzzer-sys" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5037190e1f70cbeef565bd267599242926f724d3b8a9f510fd7e0b540cfa4404" -dependencies = [ - "arbitrary", - "cc", -] - -[[package]] -name = "libgit2-sys" -version = "0.18.3+1.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9b3acc4b91781bb0b3386669d325163746af5f6e4f73e6d2d630e09a35f3487" -dependencies = [ - "cc", - "libc", - "libssh2-sys", - "libz-sys", - "openssl-sys", - "pkg-config", -] - -[[package]] -name = "libloading" -version = "0.8.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" -dependencies = [ - "cfg-if 1.0.4", - "windows-link", -] - -[[package]] -name = "libloading" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "754ca22de805bb5744484a5b151a9e1a8e837d5dc232c2d7d8c2e3492edc8b60" -dependencies = [ - "cfg-if 1.0.4", - "windows-link", -] - -[[package]] -name = "libm" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" - -[[package]] -name = "libmimalloc-sys" -version = "0.1.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "667f4fec20f29dfc6bc7357c582d91796c169ad7e2fce709468aefeb2c099870" -dependencies = [ - "cc", - "libc", -] - -[[package]] -name = "libnyx" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d34256f134550fb15f6967b105a77b0d3d99d2f665ff67249b4ee72e1beb2a7" -dependencies = [ - "cbindgen", - "libc", - "libnyx_config", - "libnyx_fuzz_runner", -] - -[[package]] -name = "libnyx_config" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "816b7a1f5e45a2a437305cb7d1b4f0760ef38ab3016367ca4bcdd25bab0d3f7a" -dependencies = [ - "libc", - "ron", - "serde", - "serde_derive", -] - -[[package]] -name = "libnyx_fuzz_runner" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e982711034d47e339d505f3e3b6e14776d0ae8510b8ac159e767156105dfc7b3" -dependencies = [ - "byteorder 0.5.3", - "colored", - "derivative", - "fs4", - "glob", - "libc", - "libnyx_config", - "nix 0.26.4", - "quick-error", - "rand 0.7.3", - "serde", - "serde_derive", - "snafu 0.6.10", - "subprocess", - "time 0.2.27", - "timeout-readwrite", -] - -[[package]] -name = "libproc" -version = "0.14.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a54ad7278b8bc5301d5ffd2a94251c004feb971feba96c971ea4063645990757" -dependencies = [ - "bindgen 0.72.1", - "errno", - "libc", -] - -[[package]] -name = "libredox" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616" -dependencies = [ - "bitflags 2.10.0", - "libc", - "redox_syscall 0.7.0", -] - -[[package]] -name = "libssh2-sys" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "220e4f05ad4a218192533b300327f5150e809b54c4ec83b5a1d91833601811b9" -dependencies = [ - "cc", - "libc", - "libz-sys", - "openssl-sys", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "libvharness_sys" -version = "0.16.0" -dependencies = [ - "bindgen 0.72.1", - "cmake", -] - -[[package]] -name = "libz-sys" -version = "1.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15d118bbf3771060e7311cc7bb0545b01d08a8b4a7de949198dec1fa0ca1c0f7" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "line-clipping" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f4de44e98ddbf09375cbf4d17714d18f39195f4f4894e8524501726fd9a8a4a" -dependencies = [ - "bitflags 2.10.0", -] - -[[package]] -name = "link-cplusplus" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f78c730aaa7d0b9336a299029ea49f9ee53b0ed06e9202e8cb7db9bae7b8c82" -dependencies = [ - "cc", -] - -[[package]] -name = "linux-raw-sys" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" - -[[package]] -name = "linux-raw-sys" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" - -[[package]] -name = "litemap" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" - -[[package]] -name = "litrs" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092" - -[[package]] -name = "ll_mp" -version = "0.16.0" -dependencies = [ - "document-features", - "exceptional", - "hostname", - "libafl_core", - "log", - "miniz_oxide", - "nix 0.30.1", - "no_std_time", - "postcard", - "rustversion", - "serde", - "serial_test", - "shmem_providers", - "tuple_list", -] - -[[package]] -name = "lock_api" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" -dependencies = [ - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" -dependencies = [ - "serde_core", - "value-bag", -] - -[[package]] -name = "lru" -version = "0.16.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96051b46fc183dc9cd4a223960ef37b9af631b55191852a8274bfef064cda20f" -dependencies = [ - "hashbrown", -] - -[[package]] -name = "lru-slab" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" - -[[package]] -name = "lua-src" -version = "548.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdc4e1aff422ad5f08cffb4719603dcdbc2be2307f4c1510d7aab74b7fa88ca8" -dependencies = [ - "cc", -] - -[[package]] -name = "luajit-src" -version = "210.6.5+7152e15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29e64ac463f01a02ee793423f9b351369cf244c5ee8bb9e2729a75b2eb404181" -dependencies = [ - "cc", - "which", -] - -[[package]] -name = "lzma-sys" -version = "0.1.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fda04ab3764e6cde78b9974eec4f779acaba7c4e84b36eca3cf77c581b85d27" -dependencies = [ - "cc", - "libc", - "pkg-config", -] - -[[package]] -name = "mach-sys" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48460c2e82a3a0de197152fdf8d2c2d5e43adc501501553e439bf2156e6f87c7" -dependencies = [ - "fastrand 2.3.0", -] - -[[package]] -name = "mach2" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d640282b302c0bb0a2a8e0233ead9035e3bed871f0b7e81fe4a1ec829765db44" -dependencies = [ - "libc", -] - -[[package]] -name = "mach2" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dae608c151f68243f2b000364e1f7b186d9c29845f7d2d85bd31b9ad77ad552b" - -[[package]] -name = "memchr" -version = "2.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" - -[[package]] -name = "meminterval" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e0f9a537564310a87dc77d5c88a407e27dd0aa740e070f0549439cfcc68fcfd" -dependencies = [ - "num-traits", - "serde", -] - -[[package]] -name = "memmap2" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "744133e4a0e0a658e1374cf3bf8e415c4052a15a111acd372764c55b4177d490" -dependencies = [ - "libc", -] - -[[package]] -name = "memoffset" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" -dependencies = [ - "autocfg", -] - -[[package]] -name = "memoffset" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" -dependencies = [ - "autocfg", -] - -[[package]] -name = "mimalloc" -version = "0.1.48" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1ee66a4b64c74f4ef288bcbb9192ad9c3feaad75193129ac8509af543894fd8" -dependencies = [ - "libmimalloc-sys", -] - -[[package]] -name = "minibsod" -version = "0.16.0" -dependencies = [ - "document-features", - "exceptional", - "libc", - "mach2 0.6.0", - "rustversion", - "windows 0.62.2", -] - -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - -[[package]] -name = "miniz_oxide" -version = "0.8.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" -dependencies = [ - "adler2", - "simd-adler32", -] - -[[package]] -name = "mio" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" -dependencies = [ - "libc", - "log", - "wasi 0.11.1+wasi-snapshot-preview1", - "windows-sys 0.48.0", -] - -[[package]] -name = "mio" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" -dependencies = [ - "libc", - "log", - "wasi 0.11.1+wasi-snapshot-preview1", - "windows-sys 0.61.2", -] - -[[package]] -name = "mlua" -version = "0.11.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "935ac67539907efcd7198137eb7358e052555f77fe1b2916600a2249351f2b33" -dependencies = [ - "bstr", - "either", - "libc", - "mlua-sys", - "mlua_derive", - "num-traits", - "parking_lot", - "rustc-hash 2.1.1", - "rustversion", -] - -[[package]] -name = "mlua-sys" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c968af21bf6b19fc9ca8e7b85ee16f86e4c9e3d0591de101a5608086bda0ad8" -dependencies = [ - "cc", - "cfg-if 1.0.4", - "lua-src", - "luajit-src", - "pkg-config", -] - -[[package]] -name = "mlua_derive" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "465bddde514c4eb3b50b543250e97c1d4b284fa3ef7dc0ba2992c77545dbceb2" -dependencies = [ - "itertools 0.14.0", - "once_cell", - "proc-macro-error2", - "proc-macro2", - "quote", - "regex", - "syn 2.0.113", -] - -[[package]] -name = "mmap-rs" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ecce9d566cb9234ae3db9e249c8b55665feaaf32b0859ff1e27e310d2beb3d8" -dependencies = [ - "bitflags 2.10.0", - "combine", - "libc", - "mach2 0.4.3", - "nix 0.30.1", - "sysctl", - "thiserror 2.0.17", - "widestring", - "windows 0.48.0", -] - -[[package]] -name = "mockall" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f58d964098a5f9c6b63d0798e5372fd04708193510a7af313c22e9f29b7b620b" -dependencies = [ - "cfg-if 1.0.4", - "downcast", - "fragile", - "mockall_derive", - "predicates", - "predicates-tree", -] - -[[package]] -name = "mockall_derive" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca41ce716dda6a9be188b385aa78ee5260fc25cd3802cb2a8afdc6afbe6b6dbf" -dependencies = [ - "cfg-if 1.0.4", - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "nix" -version = "0.26.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" -dependencies = [ - "bitflags 1.3.2", - "cfg-if 1.0.4", - "libc", - "memoffset 0.7.1", - "pin-utils", -] - -[[package]] -name = "nix" -version = "0.30.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" -dependencies = [ - "bitflags 2.10.0", - "cfg-if 1.0.4", - "cfg_aliases", - "libc", - "memoffset 0.9.1", -] - -[[package]] -name = "no_std_time" -version = "0.16.0" -dependencies = [ - "document-features", - "rustversion", -] - -[[package]] -name = "nom" -version = "7.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] - -[[package]] -name = "nonzero_macros" -version = "0.16.0" -dependencies = [ - "document-features", -] - -[[package]] -name = "nostd-musl" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd5145fbcca29f8a50daf61c359660027782c8a621daf2289ad3671df123d9cc" -dependencies = [ - "bindgen 0.71.1", - "cc", - "just", -] - -[[package]] -name = "nostd-printf" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c3087ec826d24259fdd9bc349a9965e2832cb6296d3ddb78d13c5b9a64c7e6e" -dependencies = [ - "bindgen 0.71.1", - "cc", - "just", -] - -[[package]] -name = "ntapi" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c70f219e21142367c70c0b30c6a9e3a14d55b4d12a204d897fbec83a0363f081" -dependencies = [ - "winapi", -] - -[[package]] -name = "num" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" -dependencies = [ - "num-bigint", - "num-complex", - "num-integer", - "num-iter", - "num-rational", - "num-traits", -] - -[[package]] -name = "num-bigint" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" -dependencies = [ - "num-integer", - "num-traits", -] - -[[package]] -name = "num-complex" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-conv" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" - -[[package]] -name = "num-derive" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "num-integer" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-iter" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-rational" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" -dependencies = [ - "num-bigint", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", -] - -[[package]] -name = "num_cpus" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" -dependencies = [ - "hermit-abi 0.5.2", - "libc", -] - -[[package]] -name = "num_enum" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1207a7e20ad57b847bbddc6776b968420d38292bbfe2089accff5e19e82454c" -dependencies = [ - "num_enum_derive", - "rustversion", -] - -[[package]] -name = "num_enum_derive" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "num_threads" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" -dependencies = [ - "libc", -] - -[[package]] -name = "objc2" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7c2599ce0ec54857b29ce62166b0ed9b4f6f1a70ccc9a71165b6154caca8c05" -dependencies = [ - "objc2-encode", -] - -[[package]] -name = "objc2-core-foundation" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" -dependencies = [ - "bitflags 2.10.0", -] - -[[package]] -name = "objc2-encode" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" - -[[package]] -name = "object" -version = "0.37.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe" -dependencies = [ - "flate2", - "memchr", - "ruzstd", -] - -[[package]] -name = "object" -version = "0.38.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271638cd5fa9cca89c4c304675ca658efc4e64a66c716b7cfe1afb4b9611dbbc" -dependencies = [ - "flate2", - "memchr", - "ruzstd", -] - -[[package]] -name = "once_cell" -version = "1.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" - -[[package]] -name = "once_cell_polyfill" -version = "1.70.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" - -[[package]] -name = "oorandom" -version = "11.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" - -[[package]] -name = "opaque-debug" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" - -[[package]] -name = "openssl-probe" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" - -[[package]] -name = "openssl-sys" -version = "0.9.111" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82cab2d520aa75e3c58898289429321eb788c3106963d0dc886ec7a5f4adc321" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "option-ext" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" - -[[package]] -name = "ownedref" -version = "0.16.0" -dependencies = [ - "document-features", - "libafl_core", - "rustversion", - "serde", -] - -[[package]] -name = "page_size" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d5b2194ed13191c1999ae0704b7839fb18384fa22e49b57eeaa97d79ce40da" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "parking" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" - -[[package]] -name = "parking_lot" -version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" -dependencies = [ - "cfg-if 1.0.4", - "libc", - "redox_syscall 0.5.18", - "smallvec", - "windows-link", -] - -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - -[[package]] -name = "percent-encoding" -version = "2.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" - -[[package]] -name = "perf-event-open-sys" -version = "5.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fa97b8f69404e792c384914dbe6ffc298586cca534e1c1c410e02f7cd13cfe" -dependencies = [ - "libc", -] - -[[package]] -name = "pin-project" -version = "1.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "pin-project-lite" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" - -[[package]] -name = "pin-project-lite" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "piper" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" -dependencies = [ - "atomic-waker", - "fastrand 2.3.0", - "futures-io", -] - -[[package]] -name = "pkg-config" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" - -[[package]] -name = "plain" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" - -[[package]] -name = "plotters" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aeb6f403d7a4911efb1e33402027fc44f29b5bf6def3effcc22d7bb75f2b747" -dependencies = [ - "num-traits", - "plotters-backend", - "plotters-svg", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "plotters-backend" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df42e13c12958a16b3f7f4386b9ab1f3e7933914ecea48da7139435263a4172a" - -[[package]] -name = "plotters-svg" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51bae2ac328883f7acdfea3d66a7c35751187f870bc81f94563733a154d7a670" -dependencies = [ - "plotters-backend", -] - -[[package]] -name = "polling" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" -dependencies = [ - "autocfg", - "bitflags 1.3.2", - "cfg-if 1.0.4", - "concurrent-queue", - "libc", - "log", - "pin-project-lite 0.2.16", - "windows-sys 0.48.0", -] - -[[package]] -name = "polling" -version = "3.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" -dependencies = [ - "cfg-if 1.0.4", - "concurrent-queue", - "hermit-abi 0.5.2", - "pin-project-lite 0.2.16", - "rustix 1.1.3", - "windows-sys 0.61.2", -] - -[[package]] -name = "polyval" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eebcc4aa140b9abd2bc40d9c3f7ccec842679cd79045ac3a7ac698c1a064b7cd" -dependencies = [ - "cpuid-bool", - "opaque-debug", - "universal-hash", -] - -[[package]] -name = "portable-atomic" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f89776e4d69bb58bc6993e99ffa1d11f228b839984854c7daeb5d37f87cbe950" - -[[package]] -name = "portable-atomic-util" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" -dependencies = [ - "portable-atomic", -] - -[[package]] -name = "postcard" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6764c3b5dd454e283a30e6dfe78e9b31096d9e32036b5d1eaac7a6119ccb9a24" -dependencies = [ - "cobs", - "embedded-io 0.4.0", - "embedded-io 0.6.1", - "serde", -] - -[[package]] -name = "potential_utf" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" -dependencies = [ - "zerovec", -] - -[[package]] -name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - -[[package]] -name = "ppv-lite86" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" -dependencies = [ - "zerocopy", -] - -[[package]] -name = "predicates" -version = "3.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5d19ee57562043d37e82899fade9a22ebab7be9cef5026b07fda9cdd4293573" -dependencies = [ - "anstyle", - "predicates-core", -] - -[[package]] -name = "predicates-core" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "727e462b119fe9c93fd0eb1429a5f7647394014cf3c04ab2c0350eeb09095ffa" - -[[package]] -name = "predicates-tree" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72dd2d6d381dfb73a193c7fca536518d7caee39fc8503f74e7dc0be0531b425c" -dependencies = [ - "predicates-core", - "termtree", -] - -[[package]] -name = "prettyplease" -version = "0.2.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" -dependencies = [ - "proc-macro2", - "syn 2.0.113", -] - -[[package]] -name = "proc-macro-crate" -version = "3.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" -dependencies = [ - "toml_edit 0.23.10+spec-1.0.0", -] - -[[package]] -name = "proc-macro-error-attr2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" -dependencies = [ - "proc-macro2", - "quote", -] - -[[package]] -name = "proc-macro-error2" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" -dependencies = [ - "proc-macro-error-attr2", - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "proc-macro-hack" -version = "0.5.20+deprecated" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" - -[[package]] -name = "proc-macro2" - -version = "1.0.105" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "535d180e0ecab6268a3e718bb9fd44db66bbbc256257165fc699dadf70d16fe7" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "proc-maps" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3db44c5aa60e193a25fcd93bb9ed27423827e8f118897866f946e2cf936c44fb" -dependencies = [ - "anyhow", - "bindgen 0.70.1", - "libc", - "libproc", - "mach2 0.4.3", - "winapi", -] - -[[package]] -name = "prometheus-client" -version = "0.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4500adecd7af8e0e9f4dbce15cfee07ce913fbf6ad605cc468b83f2d531ee94" -dependencies = [ - "dtoa", - "itoa", - "parking_lot", - "prometheus-client-derive-encode", -] - -[[package]] -name = "prometheus-client-derive-encode" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9adf1691c04c0a5ff46ff8f262b58beb07b0dbb61f96f9f54f6cbd82106ed87f" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "ptcov" -version = "0.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36fd9f341fcafdbf0b585bcb9617e5a8e3759c6277955b37c3e44dbc91528d8c" -dependencies = [ - "iced-x86", -] - -[[package]] -name = "pyo3" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ba0117f4212101ee6544044dae45abe1083d30ce7b29c4b5cbdfa2354e07383" -dependencies = [ - "indoc", - "inventory", - "libc", - "memoffset 0.9.1", - "once_cell", - "portable-atomic", - "pyo3-build-config 0.26.0", - "pyo3-ffi", - "pyo3-macros", - "serde", - "unindent", -] - -[[package]] -name = "pyo3-build-config" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fc6ddaf24947d12a9aa31ac65431fb1b851b8f4365426e182901eabfb87df5f" -dependencies = [ - "target-lexicon", -] - -[[package]] -name = "pyo3-build-config" -version = "0.27.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b455933107de8642b4487ed26d912c2d899dec6114884214a0b3bb3be9261ea6" -dependencies = [ - "target-lexicon", -] - -[[package]] -name = "pyo3-ffi" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "025474d3928738efb38ac36d4744a74a400c901c7596199e20e45d98eb194105" -dependencies = [ - "libc", - "pyo3-build-config 0.26.0", -] - -[[package]] -name = "pyo3-macros" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e64eb489f22fe1c95911b77c44cc41e7c19f3082fc81cce90f657cdc42ffded" -dependencies = [ - "proc-macro2", - "pyo3-macros-backend", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "pyo3-macros-backend" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "100246c0ecf400b475341b8455a9213344569af29a3c841d29270e53102e0fcf" -dependencies = [ - "heck 0.5.0", - "proc-macro2", - "pyo3-build-config 0.26.0", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "quick-error" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ac990ab4e038dd8481a5e3fd00641067fcfc674ad663f3222752ed5284e05d4" - -[[package]] -name = "quinn" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" -dependencies = [ - "bytes", - "cfg_aliases", - "pin-project-lite 0.2.16", - "quinn-proto", - "quinn-udp", - "rustc-hash 2.1.1", - "rustls", - "socket2 0.6.1", - "thiserror 2.0.17", - "tokio", - "tracing", - "web-time", -] - -[[package]] -name = "quinn-proto" -version = "0.11.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" -dependencies = [ - "bytes", - "getrandom 0.3.4", - "lru-slab", - "rand 0.9.2", - "ring", - "rustc-hash 2.1.1", - "rustls", - "rustls-pki-types", - "slab", - "thiserror 2.0.17", - "tinyvec", - "tracing", - "web-time", -] - -[[package]] -name = "quinn-udp" -version = "0.5.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" -dependencies = [ - "cfg_aliases", - "libc", - "once_cell", - "socket2 0.6.1", - "tracing", - "windows-sys 0.60.2", -] - -[[package]] -name = "quote" -version = "1.0.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc74d9a594b72ae6656596548f56f667211f8a97b3d4c3d467150794690dc40a" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "r-efi" -version = "5.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" - -[[package]] -name = "radium" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" - -[[package]] -name = "rand" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom 0.1.16", - "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - -[[package]] -name = "rand" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" -dependencies = [ - "rand_chacha 0.9.0", - "rand_core 0.9.3", -] - -[[package]] -name = "rand_chacha" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" -dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" -dependencies = [ - "ppv-lite86", - "rand_core 0.9.3", -] - -[[package]] -name = "rand_core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" -dependencies = [ - "getrandom 0.1.16", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.16", -] - -[[package]] -name = "rand_core" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" -dependencies = [ - "getrandom 0.3.4", -] - -[[package]] -name = "rand_hc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" -dependencies = [ - "rand_core 0.5.1", -] - -[[package]] -name = "rangemap" -version = "1.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "973443cf09a9c8656b574a866ab68dfa19f0867d0340648c7d2f6a71b8a8ea68" - -[[package]] -name = "ratatui" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1ce67fb8ba4446454d1c8dbaeda0557ff5e94d39d5e5ed7f10a65eb4c8266bc" -dependencies = [ - "instability", - "ratatui-core", - "ratatui-crossterm", - "ratatui-widgets", -] - -[[package]] -name = "ratatui-core" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ef8dea09a92caaf73bff7adb70b76162e5937524058a7e5bff37869cbbec293" -dependencies = [ - "bitflags 2.10.0", - "compact_str", - "hashbrown", - "indoc", - "itertools 0.14.0", - "kasuari", - "lru", - "strum", - "thiserror 2.0.17", - "unicode-segmentation", - "unicode-truncate", - "unicode-width", -] - -[[package]] -name = "ratatui-crossterm" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "577c9b9f652b4c121fb25c6a391dd06406d3b092ba68827e6d2f09550edc54b3" -dependencies = [ - "cfg-if 1.0.4", - "crossterm 0.29.0", - "instability", - "ratatui-core", -] - -[[package]] -name = "ratatui-widgets" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7dbfa023cd4e604c2553483820c5fe8aa9d71a42eea5aa77c6e7f35756612db" -dependencies = [ - "bitflags 2.10.0", - "hashbrown", - "indoc", - "instability", - "itertools 0.14.0", - "line-clipping", - "ratatui-core", - "strum", - "time 0.3.44", - "unicode-segmentation", - "unicode-width", -] - -[[package]] -name = "raw-cpuid" -version = "11.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "498cd0dc59d73224351ee52a95fee0f1a617a2eae0e7d9d720cc622c73a54186" -dependencies = [ - "bitflags 2.10.0", -] - -[[package]] -name = "rayon" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] - -[[package]] -name = "readonly" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2a62d85ed81ca5305dc544bd42c8804c5060b78ffa5ad3c64b0fb6a8c13d062" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "redox_syscall" -version = "0.5.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" -dependencies = [ - "bitflags 2.10.0", -] - -[[package]] -name = "redox_syscall" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f3fe0889e69e2ae9e41f4d6c4c0181701d00e4697b356fb1f74173a5e0ee27" -dependencies = [ - "bitflags 2.10.0", -] - -[[package]] -name = "redox_users" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" -dependencies = [ - "getrandom 0.2.16", - "libredox", - "thiserror 2.0.17", -] - -[[package]] -name = "regex" -version = "1.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata", - "regex-syntax", -] - -[[package]] -name = "regex-automata" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.8.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" - -[[package]] -name = "reqwest" -version = "0.12.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" -dependencies = [ - "base64 0.22.1", - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-rustls", - "hyper-util", - "js-sys", - "log", - "percent-encoding", - "pin-project-lite 0.2.16", - "quinn", - "rustls", - "rustls-pki-types", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper", - "tokio", - "tokio-rustls", - "tower", - "tower-http", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "webpki-roots", -] - -[[package]] -name = "ring" -version = "0.17.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" -dependencies = [ - "cc", - "cfg-if 1.0.4", - "getrandom 0.2.16", - "libc", - "untrusted", - "windows-sys 0.52.0", -] - -[[package]] -name = "roff" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88f8660c1ff60292143c98d08fc6e2f654d722db50410e3f3797d40baaf9d8f3" - -[[package]] -name = "ron" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86018df177b1beef6c7c8ef949969c4f7cb9a9344181b92486b23c79995bdaa4" -dependencies = [ - "base64 0.13.1", - "bitflags 1.3.2", - "serde", -] - -[[package]] -name = "route-recognizer" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56770675ebc04927ded3e60633437841581c285dc6236109ea25fbf3beb7b59e" - -[[package]] -name = "runtime_test" -version = "0.16.0" -dependencies = [ - "symcc_runtime", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" - -[[package]] -name = "rustc-hash" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - -[[package]] -name = "rustc-hash" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" - -[[package]] -name = "rustc_version" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" -dependencies = [ - "semver 0.9.0", -] - -[[package]] -name = "rustc_version" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" -dependencies = [ - "semver 1.0.27", -] - -[[package]] -name = "rustix" -version = "0.37.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "519165d378b97752ca44bbe15047d5d3409e875f39327546b42ac81d7e18c1b6" -dependencies = [ - "bitflags 1.3.2", - "errno", - "io-lifetimes", - "libc", - "linux-raw-sys 0.3.8", - "windows-sys 0.48.0", -] - -[[package]] -name = "rustix" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34" -dependencies = [ - "bitflags 2.10.0", - "errno", - "libc", - "linux-raw-sys 0.11.0", - "windows-sys 0.61.2", -] - -[[package]] -name = "rustls" -version = "0.23.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c665f33d38cea657d9614f766881e4d510e0eda4239891eea56b4cadcf01801b" -dependencies = [ - "once_cell", - "ring", - "rustls-pki-types", - "rustls-webpki", - "subtle", - "zeroize", -] - -[[package]] -name = "rustls-pki-types" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21e6f2ab2928ca4291b86736a8bd920a277a399bba1589409d72154ff87c1282" -dependencies = [ - "web-time", - "zeroize", -] - -[[package]] -name = "rustls-webpki" -version = "0.103.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ffdfa2f5286e2247234e03f680868ac2815974dc39e00ea15adc445d0aafe52" -dependencies = [ - "ring", - "rustls-pki-types", - "untrusted", -] - -[[package]] -name = "rustversion" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" - -[[package]] -name = "ruzstd" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ff0cc5e135c8870a775d3320910cd9b564ec036b4dc0b8741629020be63f01" -dependencies = [ - "twox-hash", -] - -[[package]] -name = "ryu" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a50f4cf475b65d88e057964e0e9bb1f0aa9bbb2036dc65c64596b42932536984" - -[[package]] -name = "safe_arch" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f7caad094bd561859bcd467734a720c3c1f5d1f338995351fefe2190c45efed" -dependencies = [ - "bytemuck", -] - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "scc" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46e6f046b7fef48e2660c57ed794263155d713de679057f2d0c169bfc6e756cc" -dependencies = [ - "sdd", -] - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "scratch" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d68f2ec51b097e4c1a75b681a8bec621909b5e91f15bb7b840c4f2f7b01148b2" - -[[package]] -name = "scroll" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1257cd4248b4132760d6524d6dda4e053bc648c9070b960929bf50cfb1e7add" -dependencies = [ - "scroll_derive", -] - -[[package]] -name = "scroll_derive" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed76efe62313ab6610570951494bdaa81568026e0318eaa55f167de70eeea67d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "sdd" -version = "3.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "490dcfcbfef26be6800d11870ff2df8774fa6e86d047e3e8c8a76b25655e41ca" - -[[package]] -name = "semver" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" -dependencies = [ - "semver-parser", -] - -[[package]] -name = "semver" -version = "1.0.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" -dependencies = [ - "serde", - "serde_core", -] - -[[package]] -name = "semver-parser" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" - -[[package]] -name = "send_wrapper" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" - -[[package]] -name = "serde" -version = "1.0.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" -dependencies = [ - "serde_core", - "serde_derive", -] - -[[package]] -name = "serde_anymap" -version = "0.16.0" -dependencies = [ - "ahash", - "ctor", - "document-features", - "erased-serde", - "hashbrown", - "libafl_core", - "postcard", - "rustversion", - "serde", - "static_assertions", -] - -[[package]] -name = "serde_core" -version = "1.0.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "serde_fmt" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e497af288b3b95d067a23a4f749f2861121ffcb2f6d8379310dcda040c345ed" -dependencies = [ - "serde_core", -] - -[[package]] -name = "serde_json" -version = "1.0.148" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3084b546a1dd6289475996f182a22aba973866ea8e8b02c51d9f46b1336a22da" -dependencies = [ - "itoa", - "memchr", - "serde", - "serde_core", - "zmij", -] - -[[package]] -name = "serde_qs" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7715380eec75f029a4ef7de39a9200e0a63823176b759d055b613f5a87df6a6" -dependencies = [ - "percent-encoding", - "serde", - "thiserror 1.0.69", -] - -[[package]] -name = "serde_spanned" -version = "0.6.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_spanned" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776" -dependencies = [ - "serde_core", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_yaml" -version = "0.9.34+deprecated" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" -dependencies = [ - "indexmap", - "itoa", - "ryu", - "serde", - "unsafe-libyaml", -] - -[[package]] -name = "serial_test" -version = "3.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d0b343e184fc3b7bb44dff0705fffcf4b3756ba6aff420dddd8b24ca145e555" -dependencies = [ - "log", - "once_cell", - "parking_lot", - "scc", - "serial_test_derive", -] - -[[package]] -name = "serial_test_derive" -version = "3.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f50427f258fb77356e4cd4aa0e87e2bd2c66dbcee41dc405282cae2bfc26c83" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "sha1" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1da05c97445caa12d05e848c4a4fcbbea29e748ac28f7e80e9b010392063770" -dependencies = [ - "sha1_smol", -] - -[[package]] -name = "sha1_smol" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d" - -[[package]] -name = "sha2" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if 1.0.4", - "cpufeatures", - "digest 0.9.0", - "opaque-debug", -] - -[[package]] -name = "sha2" -version = "0.10.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" -dependencies = [ - "cfg-if 1.0.4", - "cpufeatures", - "digest 0.10.7", -] - -[[package]] -name = "shell-words" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc6fe69c597f9c37bfeeeeeb33da3530379845f10be461a66d16d03eca2ded77" - -[[package]] -name = "shellexpand" -version = "3.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b1fdf65dd6331831494dd616b30351c38e96e45921a27745cf98490458b90bb" -dependencies = [ - "dirs", -] - -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - -[[package]] -name = "shmem_providers" -version = "0.16.0" -dependencies = [ - "document-features", - "fast_rands", - "hashbrown", - "libafl_core", - "libc", - "log", - "nix 0.30.1", - "postcard", - "rustversion", - "serde", - "serial_test", - "uds", - "uuid", - "windows 0.62.2", -] - -[[package]] -name = "signal-hook" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2" -dependencies = [ - "libc", - "signal-hook-registry", -] - -[[package]] -name = "signal-hook-mio" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b75a19a7a740b25bc7944bdee6172368f988763b744e3d4dfe753f6b4ece40cc" -dependencies = [ - "libc", - "mio 0.8.11", - "mio 1.1.1", - "signal-hook", -] - -[[package]] -name = "signal-hook-registry" -version = "1.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" -dependencies = [ - "errno", - "libc", -] - -[[package]] -name = "simd-adler32" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" - -[[package]] -name = "similar" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa" -dependencies = [ - "bstr", - "unicode-segmentation", -] - -[[package]] -name = "siphasher" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" -dependencies = [ - "serde", -] - -[[package]] -name = "slab" -version = "0.4.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" - -[[package]] -name = "smallvec" -version = "1.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" - -[[package]] -name = "snafu" -version = "0.6.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eab12d3c261b2308b0d80c26fffb58d17eba81a4be97890101f416b478c79ca7" -dependencies = [ - "doc-comment", - "snafu-derive 0.6.10", -] - -[[package]] -name = "snafu" -version = "0.8.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e84b3f4eacbf3a1ce05eac6763b4d629d60cbc94d632e4092c54ade71f1e1a2" -dependencies = [ - "snafu-derive 0.8.9", -] - -[[package]] -name = "snafu-derive" -version = "0.6.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1508efa03c362e23817f96cde18abed596a25219a8b2c66e8db33c03543d315b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "snafu-derive" -version = "0.8.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1c97747dbf44bb1ca44a561ece23508e99cb592e862f22222dcf42f51d1e451" -dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "socket2" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "socket2" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" -dependencies = [ - "libc", - "windows-sys 0.60.2", -] - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" - -[[package]] -name = "spin" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5fe4ccb98d9c292d56fec89a5e07da7fc4cf0dc11e156b41793132775d3e591" - -[[package]] -name = "stable_deref_trait" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" - -[[package]] -name = "standback" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e113fb6f3de07a243d434a56ec6f186dfd51cb08448239fe7bcae73f87ff28ff" -dependencies = [ - "version_check", -] - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "stdweb" -version = "0.4.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5" -dependencies = [ - "discard", - "rustc_version 0.2.3", - "stdweb-derive", - "stdweb-internal-macros", - "stdweb-internal-runtime", - "wasm-bindgen", -] - -[[package]] -name = "stdweb-derive" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef" -dependencies = [ - "proc-macro2", - "quote", - "serde", - "serde_derive", - "syn 1.0.109", -] - -[[package]] -name = "stdweb-internal-macros" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11" -dependencies = [ - "base-x", - "proc-macro2", - "quote", - "serde", - "serde_derive", - "serde_json", - "sha1", - "syn 1.0.109", -] - -[[package]] -name = "stdweb-internal-runtime" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0" - -[[package]] -name = "strsim" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" - -[[package]] -name = "strum" -version = "0.27.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" -dependencies = [ - "strum_macros", -] - -[[package]] -name = "strum_macros" -version = "0.27.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7" -dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "subprocess" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f75238edb5be30a9ea3035b945eb9c319dde80e879411cdc9a8978e1ac822960" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "subtle" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" - -[[package]] -name = "sval" -version = "2.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "502b8906c4736190684646827fbab1e954357dfe541013bbd7994d033d53a1ca" - -[[package]] -name = "sval_buffer" -version = "2.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4b854348b15b6c441bdd27ce9053569b016a0723eab2d015b1fd8e6abe4f708" -dependencies = [ - "sval", - "sval_ref", -] - -[[package]] -name = "sval_dynamic" -version = "2.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0bd9e8b74410ddad37c6962587c5f9801a2caadba9e11f3f916ee3f31ae4a1f" -dependencies = [ - "sval", -] - -[[package]] -name = "sval_fmt" -version = "2.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fe17b8deb33a9441280b4266c2d257e166bafbaea6e66b4b34ca139c91766d9" -dependencies = [ - "itoa", - "ryu", - "sval", -] - -[[package]] -name = "sval_json" -version = "2.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "854addb048a5bafb1f496c98e0ab5b9b581c3843f03ca07c034ae110d3b7c623" -dependencies = [ - "itoa", - "ryu", - "sval", -] - -[[package]] -name = "sval_nested" -version = "2.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96cf068f482108ff44ae8013477cb047a1665d5f1a635ad7cf79582c1845dce9" -dependencies = [ - "sval", - "sval_buffer", - "sval_ref", -] - -[[package]] -name = "sval_ref" -version = "2.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed02126365ffe5ab8faa0abd9be54fbe68d03d607cd623725b0a71541f8aaa6f" -dependencies = [ - "sval", -] - -[[package]] -name = "sval_serde" -version = "2.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a263383c6aa2076c4ef6011d3bae1b356edf6ea2613e3d8e8ebaa7b57dd707d5" -dependencies = [ - "serde_core", - "sval", - "sval_nested", -] - -[[package]] -name = "symcc_libafl" -version = "0.16.0" -dependencies = [ - "cmake", - "log", - "which", -] - -[[package]] -name = "symcc_runtime" -version = "0.16.0" -dependencies = [ - "bindgen 0.72.1", - "cmake", - "ctor", - "libafl", - "libafl_bolts", - "libc", - "regex", - "symcc_libafl", - "unchecked_unwrap", - "which", -] - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.113" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "678faa00651c9eb72dd2020cbdf275d92eccb2400d568e419efdd64838145cb4" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "sync_wrapper" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" -dependencies = [ - "futures-core", -] - -[[package]] -name = "synstructure" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "syscall-numbers" -version = "4.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e88dcf8be2fd556b3cebd02689c424dced834317c7e38328eadfcfcab00b785" - -[[package]] -name = "syscalls" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90db46b5b4962319605d435986c775ea45a0ad2561c09e1d5372b89afeb49cf4" - -[[package]] -name = "sysctl" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01198a2debb237c62b6826ec7081082d951f46dbb64b0e8c7649a452230d1dfc" -dependencies = [ - "bitflags 2.10.0", - "byteorder 1.5.0", - "enum-as-inner", - "libc", - "thiserror 1.0.69", - "walkdir", -] - -[[package]] -name = "sysinfo" -version = "0.34.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4b93974b3d3aeaa036504b8eefd4c039dced109171c1ae973f1dc63b2c7e4b2" -dependencies = [ - "libc", - "memchr", - "ntapi", - "objc2-core-foundation", - "windows 0.57.0", -] - -[[package]] -name = "tap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" - -[[package]] -name = "tar" -version = "0.4.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a" -dependencies = [ - "filetime", - "libc", - "xattr", -] - -[[package]] -name = "target" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e8f05f774b2db35bdad5a8237a90be1102669f8ea013fea9777b366d34ab145" - -[[package]] -name = "target-lexicon" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1dd07eb858a2067e2f3c7155d54e929265c264e6f37efe3ee7a8d1b5a1dd0ba" - -[[package]] -name = "tempfile" -version = "3.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "655da9c7eb6305c55742045d5a8d2037996d61d8de95806335c7c86ce0f82e9c" -dependencies = [ - "fastrand 2.3.0", - "getrandom 0.3.4", - "once_cell", - "rustix 1.1.3", - "windows-sys 0.61.2", -] - -[[package]] -name = "termcolor" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "terminal_size" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b8cb979cb11c32ce1603f8137b22262a9d131aaa5c37b5678025f22b8becd0" -dependencies = [ - "rustix 1.1.3", - "windows-sys 0.60.2", -] - -[[package]] -name = "termtree" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f50febec83f5ee1df3015341d8bd429f2d1cc62bcba7ea2076759d315084683" - -[[package]] -name = "thiserror" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" -dependencies = [ - "thiserror-impl 1.0.69", -] - -[[package]] -name = "thiserror" -version = "2.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" -dependencies = [ - "thiserror-impl 2.0.17", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "thiserror-impl" -version = "2.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "thread_local" -version = "1.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" -dependencies = [ - "cfg-if 1.0.4", -] - -[[package]] -name = "tide" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c459573f0dd2cc734b539047f57489ea875af8ee950860ded20cf93a79a1dee0" -dependencies = [ - "async-h1", - "async-session", - "async-sse", - "async-std", - "async-trait", - "femme", - "futures-util", - "http-client", - "http-types", - "kv-log-macro", - "log", - "pin-project-lite 0.2.16", - "route-recognizer", - "serde", - "serde_json", -] - -[[package]] -name = "time" -version = "0.2.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4752a97f8eebd6854ff91f1c1824cd6160626ac4bd44287f7f4ea2035a02a242" -dependencies = [ - "const_fn", - "libc", - "standback", - "stdweb", - "time-macros 0.1.1", - "version_check", - "winapi", -] - -[[package]] -name = "time" -version = "0.3.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" -dependencies = [ - "deranged", - "itoa", - "libc", - "num-conv", - "num_threads", - "powerfmt", - "serde", - "time-core", - "time-macros 0.2.24", -] - -[[package]] -name = "time-core" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" - -[[package]] -name = "time-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "957e9c6e26f12cb6d0dd7fc776bb67a706312e7299aed74c8dd5b17ebb27e2f1" -dependencies = [ - "proc-macro-hack", - "time-macros-impl", -] - -[[package]] -name = "time-macros" -version = "0.2.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" -dependencies = [ - "num-conv", - "time-core", -] - -[[package]] -name = "time-macros-impl" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd3c141a1b43194f3f56a1411225df8646c55781d5f26db825b3d98507eb482f" -dependencies = [ - "proc-macro-hack", - "proc-macro2", - "quote", - "standback", - "syn 1.0.109", -] - -[[package]] -name = "timeout-readwrite" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37312ddc0adbd0f112618a4250ac586448151ff6d69241ff061b29b883349f3e" -dependencies = [ - "nix 0.26.4", -] - -[[package]] -name = "tinyinst" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecb411597ed7fa0237bf4cf702264f70a5ff4a688b065cc066261efabca1e3da" -dependencies = [ - "cmake", - "cxx", - "git2", - "which", -] - -[[package]] -name = "tinystr" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tinytemplate" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" -dependencies = [ - "serde", - "serde_json", -] - -[[package]] -name = "tinyvec" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "tokio" -version = "1.49.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86" -dependencies = [ - "bytes", - "libc", - "mio 1.1.1", - "pin-project-lite 0.2.16", - "socket2 0.6.1", - "tokio-macros", - "windows-sys 0.61.2", -] - -[[package]] -name = "tokio-macros" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "tokio-rustls" -version = "0.26.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" -dependencies = [ - "rustls", - "tokio", -] - -[[package]] -name = "toml" -version = "0.8.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" -dependencies = [ - "serde", - "serde_spanned 0.6.9", - "toml_datetime 0.6.11", - "toml_edit 0.22.27", -] - -[[package]] -name = "toml" -version = "0.9.10+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0825052159284a1a8b4d6c0c86cbc801f2da5afd2b225fa548c72f2e74002f48" -dependencies = [ - "indexmap", - "serde_core", - "serde_spanned 1.0.4", - "toml_datetime 0.7.5+spec-1.1.0", - "toml_parser", - "toml_writer", - "winnow", -] - -[[package]] -name = "toml_datetime" -version = "0.6.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_datetime" -version = "0.7.5+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" -dependencies = [ - "serde_core", -] - -[[package]] -name = "toml_edit" -version = "0.22.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" -dependencies = [ - "indexmap", - "serde", - "serde_spanned 0.6.9", - "toml_datetime 0.6.11", - "toml_write", - "winnow", -] - -[[package]] -name = "toml_edit" -version = "0.23.10+spec-1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269" -dependencies = [ - "indexmap", - "toml_datetime 0.7.5+spec-1.1.0", - "toml_parser", - "winnow", -] - -[[package]] -name = "toml_parser" -version = "1.0.6+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44" -dependencies = [ - "winnow", -] - -[[package]] -name = "toml_write" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" - -[[package]] -name = "toml_writer" -version = "1.0.6+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab16f14aed21ee8bfd8ec22513f7287cd4a91aa92e44edfe2c17ddd004e92607" - -[[package]] -name = "tower" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" -dependencies = [ - "futures-core", - "futures-util", - "pin-project-lite 0.2.16", - "sync_wrapper", - "tokio", - "tower-layer", - "tower-service", -] - -[[package]] -name = "tower-http" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" -dependencies = [ - "bitflags 2.10.0", - "bytes", - "futures-util", - "http", - "http-body", - "iri-string", - "pin-project-lite 0.2.16", - "tower", - "tower-layer", - "tower-service", -] - -[[package]] -name = "tower-layer" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" - -[[package]] -name = "tower-service" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - -[[package]] -name = "tracing" -version = "0.1.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" -dependencies = [ - "pin-project-lite 0.2.16", - "tracing-core", -] - -[[package]] -name = "tracing-core" -version = "0.1.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" -dependencies = [ - "once_cell", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "tuple_list" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "141fb9f71ee586d956d7d6e4d5a9ef8e946061188520140f7591b668841d502e" - -[[package]] -name = "tuple_list_ex" -version = "0.16.0" -dependencies = [ - "document-features", - "libafl_core", - "ownedref", - "rustversion", - "serde", - "tuple_list", - "typeid", -] - -[[package]] -name = "twox-hash" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ea3136b675547379c4bd395ca6b938e5ad3c3d20fad76e7fe85f9e0d011419c" - -[[package]] -name = "typed-arena" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a" - -[[package]] -name = "typed-builder" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31aa81521b70f94402501d848ccc0ecaa8f93c8eb6999eb9747e72287757ffda" -dependencies = [ - "typed-builder-macro", -] - -[[package]] -name = "typed-builder-macro" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "076a02dc54dd46795c2e9c8282ed40bcfb1e22747e955de9389a1de28190fb26" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "typeid" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" - -[[package]] -name = "typenum" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" - -[[package]] -name = "typewit" -version = "1.14.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8c1ae7cc0fdb8b842d65d127cb981574b0d2b249b74d1c7a2986863dc134f71" - -[[package]] -name = "uds" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "885c31f06fce836457fe3ef09a59f83fe8db95d270b11cd78f40a4666c4d1661" -dependencies = [ - "libc", -] - -[[package]] -name = "unchecked_unwrap" -version = "4.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3225965522cd8ec8a857c1496adf6c17ecb9c0de554a09dbdaa89080bbb74088" - -[[package]] -name = "unicode-ident" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" - -[[package]] -name = "unicode-segmentation" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" - -[[package]] -name = "unicode-truncate" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fbf03860ff438702f3910ca5f28f8dac63c1c11e7efb5012b8b175493606330" -dependencies = [ - "itertools 0.13.0", - "unicode-segmentation", - "unicode-width", -] - -[[package]] -name = "unicode-width" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" - -[[package]] -name = "unicode-xid" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" - -[[package]] -name = "unicorn-engine" -version = "2.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c16b5d5186d9400cd3bf9f892ed826cb724f69b906bbe66811527df73eaf7a33" -dependencies = [ - "bindgen 0.71.1", - "cc", - "cmake", - "pkg-config", - "unicorn-engine-sys", -] - -[[package]] -name = "unicorn-engine-sys" -version = "2.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "685282714d35a6fbfed0ae14d81bb11c91838bc7a165cac778321679a7bb91d8" -dependencies = [ - "bindgen 0.71.1", - "cc", - "cmake", - "heck 0.5.0", - "pkg-config", -] - -[[package]] -name = "unindent" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3" - -[[package]] -name = "universal-hash" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8326b2c654932e3e4f9196e69d08fdf7cfd718e1dc6f66b347e6024a0c961402" -dependencies = [ - "generic-array", - "subtle", -] - -[[package]] -name = "unsafe-libyaml" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" - -[[package]] -name = "untrusted" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" - -[[package]] -name = "unty" -version = "0.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae" - -[[package]] -name = "url" -version = "2.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", - "serde", - "serde_derive", -] - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - -[[package]] -name = "utf8parse" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" - -[[package]] -name = "uuid" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e054861b4bd027cd373e18e8d8d8e6548085000e41290d95ce0c373a654b4a" -dependencies = [ - "getrandom 0.3.4", - "js-sys", - "serde_core", - "wasm-bindgen", -] - -[[package]] -name = "value-bag" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ba6f5989077681266825251a52748b8c1d8a4ad098cc37e440103d0ea717fc0" -dependencies = [ - "value-bag-serde1", - "value-bag-sval2", -] - -[[package]] -name = "value-bag-serde1" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16530907bfe2999a1773ca5900a65101e092c70f642f25cc23ca0c43573262c5" -dependencies = [ - "erased-serde", - "serde_core", - "serde_fmt", -] - -[[package]] -name = "value-bag-sval2" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d00ae130edd690eaa877e4f40605d534790d1cf1d651e7685bd6a144521b251f" -dependencies = [ - "sval", - "sval_buffer", - "sval_dynamic", - "sval_fmt", - "sval_json", - "sval_ref", - "sval_serde", -] - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "vergen" -version = "9.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b2bf58be11fc9414104c6d3a2e464163db5ef74b12296bda593cac37b6e4777" -dependencies = [ - "anyhow", - "cargo_metadata", - "derive_builder", - "regex", - "rustc_version 0.4.1", - "rustversion", - "sysinfo", - "time 0.3.44", - "vergen-lib", -] - -[[package]] -name = "vergen-git2" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f6ee511ec45098eabade8a0750e76eec671e7fb2d9360c563911336bea9cac1" -dependencies = [ - "anyhow", - "derive_builder", - "git2", - "rustversion", - "time 0.3.44", - "vergen", - "vergen-lib", -] - -[[package]] -name = "vergen-lib" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b07e6010c0f3e59fcb164e0163834597da68d1f864e2b8ca49f74de01e9c166" -dependencies = [ - "anyhow", - "derive_builder", - "rustversion", -] - -[[package]] -name = "version_check" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - -[[package]] -name = "virtue" -version = "0.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "051eb1abcf10076295e815102942cc58f9d5e3b4560e46e53c21e8ff6f3af7b1" - -[[package]] -name = "wait-timeout" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11" -dependencies = [ - "libc", -] - -[[package]] -name = "waker-fn" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7" - -[[package]] -name = "walkdir" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" -dependencies = [ - "same-file", - "winapi-util", -] - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - -[[package]] -name = "wasi" -version = "0.11.1+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" - -[[package]] -name = "wasip2" -version = "1.0.1+wasi-0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" -dependencies = [ - "wit-bindgen", -] - -[[package]] -name = "wasm-bindgen" -version = "0.2.106" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd" -dependencies = [ - "cfg-if 1.0.4", - "once_cell", - "rustversion", - "serde", - "serde_json", - "wasm-bindgen-macro", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.56" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836d9622d604feee9e5de25ac10e3ea5f2d65b41eac0d9ce72eb5deae707ce7c" -dependencies = [ - "cfg-if 1.0.4", - "js-sys", - "once_cell", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.106" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.106" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40" -dependencies = [ - "bumpalo", - "proc-macro2", - "quote", - "syn 2.0.113", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.106" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "web-sys" -version = "0.3.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b32828d774c412041098d182a8b38b16ea816958e07cf40eec2bc080ae137ac" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "web-time" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "webpki-roots" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12bed680863276c63889429bfd6cab3b99943659923822de1c8a39c49e4d722c" -dependencies = [ - "rustls-pki-types", -] - -[[package]] -name = "which" -version = "8.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3fabb953106c3c8eea8306e4393700d7657561cb43122571b172bbfb7c7ba1d" -dependencies = [ - "env_home", - "rustix 1.1.3", - "winsafe 0.0.19", -] - -[[package]] -name = "wide" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac11b009ebeae802ed758530b6496784ebfee7a87b9abfbcaf3bbe25b814eb25" -dependencies = [ - "bytemuck", - "safe_arch", -] - -[[package]] -name = "widestring" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72069c3113ab32ab29e5584db3c6ec55d416895e60715417b5b883a357c3e471" - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" -dependencies = [ - "windows-sys 0.61.2", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows" -version = "0.57.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143" -dependencies = [ - "windows-core 0.57.0", - "windows-targets 0.52.6", -] - -[[package]] -name = "windows" -version = "0.62.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "527fadee13e0c05939a6a05d5bd6eec6cd2e3dbd648b9f8e447c6518133d8580" -dependencies = [ - "windows-collections", - "windows-core 0.62.2", - "windows-future", - "windows-numerics", -] - -[[package]] -name = "windows-collections" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b2d95af1a8a14a3c7367e1ed4fc9c20e0a26e79551b1454d72583c97cc6610" -dependencies = [ - "windows-core 0.62.2", -] - -[[package]] -name = "windows-core" -version = "0.57.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d" -dependencies = [ - "windows-implement 0.57.0", - "windows-interface 0.57.0", - "windows-result 0.1.2", - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-core" -version = "0.62.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" -dependencies = [ - "windows-implement 0.60.2", - "windows-interface 0.59.3", - "windows-link", - "windows-result 0.4.1", - "windows-strings", -] - -[[package]] -name = "windows-future" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb" -dependencies = [ - "windows-core 0.62.2", - "windows-link", - "windows-threading", -] - -[[package]] -name = "windows-implement" -version = "0.57.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "windows-implement" -version = "0.60.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "windows-interface" -version = "0.57.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "windows-interface" -version = "0.59.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "windows-link" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" - -[[package]] -name = "windows-numerics" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e2e40844ac143cdb44aead537bbf727de9b044e107a0f1220392177d15b0f26" -dependencies = [ - "windows-core 0.62.2", - "windows-link", -] - -[[package]] -name = "windows-result" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-result" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows-strings" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.60.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" -dependencies = [ - "windows-targets 0.53.5", -] - -[[package]] -name = "windows-sys" -version = "0.61.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm 0.52.6", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.53.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" -dependencies = [ - "windows-link", - "windows_aarch64_gnullvm 0.53.1", - "windows_aarch64_msvc 0.53.1", - "windows_i686_gnu 0.53.1", - "windows_i686_gnullvm 0.53.1", - "windows_i686_msvc 0.53.1", - "windows_x86_64_gnu 0.53.1", - "windows_x86_64_gnullvm 0.53.1", - "windows_x86_64_msvc 0.53.1", -] - -[[package]] -name = "windows-threading" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3949bd5b99cafdf1c7ca86b43ca564028dfe27d66958f2470940f73d86d75b37" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnu" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_i686_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" - -[[package]] -name = "winnow" -version = "0.7.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" -dependencies = [ - "memchr", -] - -[[package]] -name = "winsafe" -version = "0.0.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" - -[[package]] -name = "winsafe" -version = "0.0.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcfff8264c3af1b0352006934e2265365ecb5a145aee88e770dc8b82e0456f4f" - -[[package]] -name = "wit-bindgen" -version = "0.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" - -[[package]] -name = "writeable" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" - -[[package]] -name = "wyz" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" -dependencies = [ - "tap", -] - -[[package]] -name = "xattr" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" -dependencies = [ - "libc", - "rustix 1.1.3", -] - -[[package]] -name = "xxhash-rust" -version = "0.8.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdd20c5420375476fbd4394763288da7eb0cc0b8c11deed431a91562af7335d3" - -[[package]] -name = "xz" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c887690ff2a2e233e8e49633461521f98ec57fbff9d59a884c9a4f04ec1da34" -dependencies = [ - "xz2", -] - -[[package]] -name = "xz2" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388c44dc09d76f1536602ead6d325eb532f5c122f17782bd57fb47baeeb767e2" -dependencies = [ - "lzma-sys", -] - -[[package]] -name = "yaxpeax-arch" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36274fcc5403da2a7636ffda4d02eca12a1b2b8267b9d2e04447bd2ccfc72082" -dependencies = [ - "crossterm 0.27.0", - "num-traits", - "serde", - "serde_derive", -] - -[[package]] -name = "yaxpeax-arm" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8aa9155f0d727d10e91e5a94f68f415ec24c7a5faab4eac2386a1069e4a02d7" -dependencies = [ - "bitvec", - "serde", - "serde_derive", - "yaxpeax-arch", -] - -[[package]] -name = "yaxpeax-x86" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a9a30b7dd533c7b1a73eaf7c4ea162a7a632a2bb29b9fff47d8f2cc8513a883" -dependencies = [ - "cfg-if 1.0.4", - "num-traits", - "serde", - "serde_derive", - "yaxpeax-arch", -] - -[[package]] -name = "yoke" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" -dependencies = [ - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.113", - "synstructure", -] - -[[package]] -name = "z3" -version = "0.19.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea19bb0f83371b3279afd962fd5c6525024459615598ad328eb24d1713e28dd9" -dependencies = [ - "log", - "num", - "z3-sys", -] - -[[package]] -name = "z3-sys" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b18a464a6d3c31e6684906ca12e53c095ff625cd21fcbe09271a3aacb56a96f1" -dependencies = [ - "bindgen 0.72.1", - "pkg-config", - "reqwest", -] - -[[package]] -name = "zerocopy" -version = "0.8.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd74ec98b9250adb3ca554bdde269adf631549f51d8a8f8f0a10b50f1cb298c3" -dependencies = [ - "zerocopy-derive", -] - -[[package]] -name = "zerocopy-derive" -version = "0.8.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8a8d209fdf45cf5138cbb5a506f6b52522a25afccc534d1475dad8e31105c6a" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "zerofrom" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.113", - "synstructure", -] - -[[package]] -name = "zeroize" -version = "1.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" - -[[package]] -name = "zerotrie" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", -] - -[[package]] -name = "zerovec" -version = "0.11.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.113", -] - -[[package]] -name = "zmij" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fc5a66a20078bf1251bde995aa2fdcc4b800c70b5d92dd2c62abc5c60f679f8" diff --git a/Cargo.toml b/Cargo.toml index 0ebc12a8aa8..a3248295ef1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,6 +9,7 @@ members = [ "crates/libafl_asan/libafl_asan_fuzz", "crates/libafl_asan/libafl_asan_libc", "crates/libafl_bolts", + "crates/libafl_build", "crates/libafl_cc", "crates/libafl_concolic/symcc_libafl", "crates/libafl_concolic/symcc_runtime", @@ -46,6 +47,7 @@ members = [ "utils/gramatron/construct_automata", "utils/libafl_benches", "utils/libafl_jumper", + "utils/find_llvm_config", ] default-members = [ @@ -84,6 +86,7 @@ exceptional = { path = "./crates/exceptional", version = "0.16.0", default-featu fast_rands = { path = "./crates/fast_rands", version = "0.16.0", default-features = false } libafl = { path = "./crates/libafl", version = "0.16.0", default-features = false } libafl_bolts = { path = "./crates/libafl_bolts", version = "0.16.0", default-features = false } +libafl_build = { path = "./crates/libafl_build", version = "0.16.0", default-features = false } libafl_cc = { path = "./crates/libafl_cc", version = "0.16.0", default-features = false } libafl_core = { path = "./crates/libafl_core", version = "0.16.0", default-features = false } libafl_derive = { path = "./crates/libafl_derive", version = "0.16.0", default-features = false } @@ -135,6 +138,7 @@ document-features = "0.2.11" erased-serde = { version = "0.4.5", default-features = false } # erased serde fastbloom = { version = "0.14.0", default-features = false } fs2 = "0.4.3" # Used by OnDisk Corpus for file locking +glob = "0.3" hashbrown = { version = "0.16.1", default-features = false } # A faster hashmap, nostd compatible just = "1.46.0" libc = "0.2.178" # For (*nix) libc diff --git a/Justfile b/Justfile index 922f9f0c453..3e392118361 100644 --- a/Justfile +++ b/Justfile @@ -1,95 +1,265 @@ -mod libafl_bolts 'crates/libafl_bolts/Justfile' -mod libafl 'crates/libafl/Justfile' -mod libafl_targets 'crates/libafl_targets/Justfile' -mod libafl_cc 'crates/libafl_cc/Justfile' -mod libafl_derive 'crates/libafl_derive/Justfile' -mod libafl_nyx 'crates/libafl_nyx/Justfile' -mod build_id2 'crates/build_id2/Justfile' -mod core_affinity2 'crates/core_affinity2/Justfile' -mod exceptional 'crates/exceptional/Justfile' -mod fast_rands 'crates/fast_rands/Justfile' -mod libafl_core 'crates/libafl_core/Justfile' -mod libafl_intelpt 'crates/libafl_intelpt/Justfile' -mod libafl_sugar 'crates/libafl_sugar/Justfile' -mod libafl_tinyinst 'crates/libafl_tinyinst/Justfile' -mod libafl_unicorn 'crates/libafl_unicorn/Justfile' -mod ll_mp 'crates/ll_mp/Justfile' -mod minibsod 'crates/minibsod/Justfile' -mod no_std_time 'crates/no_std_time/Justfile' -mod ownedref 'crates/ownedref/Justfile' -mod serde_anymap 'crates/serde_anymap/Justfile' -mod shmem_providers 'crates/shmem_providers/Justfile' -mod tuple_list_ex 'crates/tuple_list_ex/Justfile' -mod libafl_libfuzzer 'crates/libafl_libfuzzer/Justfile' -mod libafl_concolic_symcc_runtime 'crates/libafl_concolic/symcc_runtime/Justfile' -mod libafl_concolic_dump_constraints 'crates/libafl_concolic/test/dump_constraints/Justfile' -mod libafl_concolic_runtime_test 'crates/libafl_concolic/test/runtime_test/Justfile' -mod libafl_concolic_symcc_libafl 'crates/libafl_concolic/symcc_libafl/Justfile' -mod libafl_asan 'crates/libafl_asan/Justfile' -mod libafl_asan_fuzz 'crates/libafl_asan/libafl_asan_fuzz/Justfile' -mod libafl_asan_libc 'crates/libafl_asan/libafl_asan_libc/Justfile' -mod libafl_qemu_runner 'crates/libafl_qemu/libafl_qemu_runner/Justfile' -mod libafl_qemu_build 'crates/libafl_qemu/libafl_qemu_build/Justfile' -mod libafl_qemu_sys 'crates/libafl_qemu/libafl_qemu_sys/Justfile' -mod libvharness_sys 'crates/libafl_qemu/libvharness_sys/Justfile' -mod libafl_qemu 'crates/libafl_qemu/Justfile' -mod libafl_frida 'crates/libafl_frida/Justfile' - -mod build_and_test_fuzzers 'utils/build_and_test_fuzzers/Justfile' -mod ci_runner 'utils/ci_runner/Justfile' -mod ci_splitter 'utils/ci_splitter/Justfile' -mod deexit 'utils/deexit/Justfile' -mod drcov_utils 'utils/drcov_utils/Justfile' -mod gramatron_construct_automata 'utils/gramatron/construct_automata/Justfile' -mod libafl_benches 'utils/libafl_benches/Justfile' -mod libafl_jumper 'utils/libafl_jumper/Justfile' - -doc-crates: - just libafl_bolts doc - just libafl doc - just libafl_targets doc - just libafl_cc doc - just libafl_derive doc - just libafl_nyx doc - just build_id2 doc - just core_affinity2 doc - just exceptional doc - just fast_rands doc - just libafl_core doc - just libafl_intelpt doc - just libafl_sugar doc - just libafl_tinyinst doc - just libafl_unicorn doc - just ll_mp doc - just minibsod doc - just no_std_time doc - just ownedref doc - just serde_anymap doc - just shmem_providers doc - just tuple_list_ex doc - just libafl_libfuzzer doc - just libafl_asan doc - just libafl_asan_fuzz doc_fuzz - just libafl_asan_libc doc_libc - just libafl_qemu_runner doc - just libafl_qemu_build doc - just libafl_qemu_sys doc - just libvharness_sys doc - just libafl_qemu doc - just libafl_concolic_symcc_runtime doc - just libafl_concolic_dump_constraints doc - just libafl_concolic_runtime_test doc - just libafl_concolic_symcc_libafl doc - just libafl_frida doc - -doc-utils: - just build_and_test_fuzzers doc - just ci_runner doc - just ci_splitter doc - just deexit doc - just drcov_utils doc - just gramatron_construct_automata doc - just libafl_benches doc - just libafl_jumper doc - -doc-all: doc-crates doc-utils \ No newline at end of file +export ROOT_DIR := justfile_directory() +export SCRIPTS_DIR := join(justfile_directory(), "scripts") +export FUZZERS_DIR := join(justfile_directory(), "fuzzers") +export TARGET_DIR := join(justfile_directory(), "target") +export DOCS_DIR := join(justfile_directory(), "docs") +export LIBAFL_DIR := join(justfile_directory(), "crates/libafl") +export LIBAFL_BOLTS_DIR := join(justfile_directory(), "crates/libafl_bolts") +export LIBAFL_TARGETS_DIR := join(justfile_directory(), "crates/libafl_targets") +MSRV := env_var_or_default('MSRV', "") + +# List all available just targets in this justfile +@help *PAT: + if [[ '{{ PAT }}' =~ '' ]]; then just -l; else just -l | rg -i '{{ PAT }}'; fi + +@_check: + just --fmt --unstable --check + +@_fmt: + just -q _check || just --fmt --unstable + +# Check, build, and test all crates with default features enabled +default feature='' ignore='': (check feature ignore) (build feature ignore) (test feature ignore) + +# Check, build, and test all crates with all-features enabled +all-features: (default "--all-features") + +# Build examples +examples: (default "--examples") + +# Check, build, and test all crates with no-default-features +no-default-features: (default "--no-default-features") + +# Run check on all projects in the workspace +check feature='' ignore='': + cargo {{ MSRV }} check --workspace --all-targets --exclude libafl_asan_libc {{ feature }} + +# Run build on all projects in the workspace +build feature='' ignore='': + cargo {{ MSRV }} build --workspace --all-targets --exclude libafl_asan_libc {{ feature }} + +# Run tests on all projects in the workspace +test feature='' ignore='': + cargo {{ MSRV }} test --workspace --all-targets --exclude libafl_asan_libc --exclude libafl_asan {{ feature }} + # Run libafl_asan tests serially to avoid address conflicts + RUST_TEST_THREADS=1 cargo {{ MSRV }} test -p libafl_asan -j 1 {{ feature }} + +# Runs tests without default features (for no_std) +test-no-std: + cd {{ LIBAFL_DIR }} && cargo test --no-default-features + cd {{ LIBAFL_BOLTS_DIR }} && cargo test --no-default-features + cd {{ LIBAFL_TARGETS_DIR }} && cargo test --no-default-features + cd {{ FUZZERS_DIR }}/fuzz_anything/baby_no_std && cargo +nightly run || test $? -ne 0 || exit 1 + +# Build the fuzzer on aarch64 none +build-aarch64-unknown-none: + cd {{ LIBAFL_BOLTS_DIR }} && cargo +nightly build -Zbuild-std=core,alloc --target aarch64-unknown-none --no-default-features -v --release + cd {{ FUZZERS_DIR }}/fuzz_anything/baby_no_std && cargo +nightly build -Zbuild-std=core,alloc --target aarch64-unknown-none -v --release + +clippy-thumbv6m-none-eabi: + cd {{ LIBAFL_DIR }} && cargo clippy --target thumbv6m-none-eabi --no-default-features + cd {{ LIBAFL_BOLTS_DIR }} && cargo clippy --target thumbv6m-none-eabi --no-default-features + +# Tests the code using miri +test-miri: + RUST_BACKTRACE=1 MIRIFLAGS="-Zmiri-disable-isolation" cargo +nightly miri test + +# Tests all code in docs (macos version) +[macos] +[private] +test-docs-internal: all-features + cd {{ DOCS_DIR }} && mdbook test -L ../target/debug/deps $(python3-config --ldflags | cut -d ' ' -f1) + +# Tests all code in docs (linux version) +[linux] +[private] +test-docs-internal: all-features + RUSTFLAGS="--cfg docsrs" cargo +nightly test --doc --all-features + cd {{ DOCS_DIR }} && mdbook test -L ../target/debug/deps + +[private] +[windows] +test-docs-internal: + @echo "Skipping docs test on Windows" + +# Tests all code in docs +test-docs: test-docs-internal + RUSTDOCFLAGS="-Dwarnings" cargo {{ MSRV }} doc --workspace --all-features --no-deps --document-private-items --exclude libafl_qemu + RUSTDOCFLAGS="-Dwarnings" cargo {{ MSRV }} doc -p libafl_qemu --no-default-features --features usermode,python --no-deps --document-private-items + +# Build documentation +doc: + ./scripts/doc_all.py + +# Runs clippy on all crates +[private] +clippy-inner feature='': + cargo {{ MSRV }} clippy --workspace --all-targets --exclude libafl_asan_libc {{ feature }} -- -D warnings + +# Run clippy on all targets and all sources +[linux] +clippy: + just clippy-inner --no-default-features + just clippy-inner + just clippy-inner --all-features + +# Run clippy on.. some things? +[macos] +clippy: + cargo +nightly clippy --tests --all --exclude libafl_nyx --exclude symcc_runtime --exclude runtime_test + +# Run clippy powershell script +[windows] +clippy: + pwsh {{ SCRIPTS_DIR }}/clippy.ps1 + +# Check the format of all code +check-fmt: + PATH="/usr/bin:$PATH" {{ SCRIPTS_DIR }}/fmt_all.sh check + +# Format everything +fmt params="": + PATH="/usr/bin:$PATH" {{ SCRIPTS_DIR }}/fmt_all.sh {{ params }} + +# : We currently only specify minimum rust versions for the default workspace members +msrv: + cargo hack check --rust-version -p libafl -p libafl_bolts -p libafl_derive -p libafl_cc -p libafl_targets + +# Check that all fuzzers are listed below in the justfile +fuzzers-preflight: + ./scripts/check_tested_fuzzers.sh + +# Do nothing (to comment things (out)) +nop comment1="" comment2="" comment3="": + +test-fuzzer fuzzer_dir: + RUN_ON_CI=1 cargo run --manifest-path {{ justfile_directory() }}/utils/ci_runner/Cargo.toml -- {{ fuzzer_dir }} + +# Build libafl only +build-libafl: + cargo build -p libafl + +# Run tests serially +test-serial: + cargo test -- --test-threads 1 + +# Check sancov pcguard edges +check-sancov-edges: + cargo check --features=sancov_pcguard_edges + +# Check features using ci_splitter +check-features instance_idx: + LLVM_VERSION=18 CI_INSTANCES=18 cargo run --manifest-path {{ justfile_directory() }}/utils/ci_splitter/Cargo.toml -- {{ instance_idx }} + +# Check i686 target +check-i686: + cargo check --target=i686-unknown-linux-gnu + +# Check for binary blobs +check-blobs: + ./scripts/check_for_blobs.sh + +# Check TOML format +check-toml: + taplo format --check + +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") + +# Windows-specific cmplog test +[windows] +test-fuzzers-gdiplus-cmplog: + cd {{ FUZZERS_DIR }}/binary_only/frida_windows_gdiplus/ && just test_cmplog + +# Fuzzers specific to linux +[linux] +test-os-specific-fuzzers: test-python-fuzzer (nop "Binary-only") (test-fuzzer "./fuzzers/binary_only/fuzzbench_fork_qemu") (test-fuzzer "./fuzzers/binary_only/fuzzbench_qemu") (nop "Full-system") (test-fuzzer "./fuzzers/full_system/qemu_baremetal") (test-fuzzer "./fuzzers/full_system/qemu_linux_kernel") (test-fuzzer "./fuzzers/full_system/qemu_linux_process") (nop "Binary only") (test-fuzzer "./fuzzers/binary_only/qemu_cmin") (test-fuzzer "./fuzzers/binary_only/qemu_coverage") (test-fuzzer "./fuzzers/binary_only/qemu_launcher") + +# Fuzzers specific to MacOS +[macos] +test-os-specific-fuzzers: + +# Fuzzers specific to Windows +[windows] +test-os-specific-fuzzers: (test-fuzzer "./fuzzers/inprocess/libfuzzer_windows_asan") (test-fuzzer "./fuzzers/binary_only/frida_windows_gdiplus") (test-fuzzer "fuzzers/binary_only/frida_libpng/") (test-fuzzer "fuzzers/binary_only/tinyinst_simple/") test-fuzzers-gdiplus-cmplog + +# Tests the python fuzzer +[linux] +test-python-fuzzer: + sh -c ". {{ ROOT_DIR }}/bindings/pylibafl/.env/bin/activate && cd {{ FUZZERS_DIR }}/binary_only/python_qemu/ && python3 fuzzer.py 2>&1 | grepy 'Bye'" + +# Builds the python bindings +build-python: + sh -c "cd {{ ROOT_DIR }}/bindings/pylibafl && python3 -m venv .env && . .env/bin/activate && pip install --upgrade --force-reinstall . && ./test.sh" + +# Task to run clippy, rustfmt, and audit on all crates +cleanliness: clippy check-fmt + +build-librasan: + just \ + -f {{ FUZZERS_DIR }}/libafl_qemu/librasan/Justfile \ + build_everything_dev \ + build_x86_64_release + +test-librasan: + just \ + -f {{ FUZZERS_DIR }}/libafl_qemu/librasan/Justfile \ + test_everything + +# Publish all crates +[unix] +publish: + cd {{ ROOT_DIR }} && cargo publish --workspace --publish-as-is --no-remove-dev-deps --token $CRATES_IO_TOKEN + +[unix] +autofix: + {{ SCRIPTS_DIR }}/autofix.sh + +clean: + cargo clean + find {{ FUZZERS_DIR }} -d -name 'target' -exec rm -r {} \; + +docker: + docker build -t libafl {{ ROOT_DIR }} + +# Runs hellcheck on the scripts folder +[unix] +shellcheck: + shellcheck {{ SCRIPTS_DIR }}/*.sh + +# Builds libafl for Android +build-android: + cd {{ LIBAFL_DIR }} && PYO3_CROSS_PYTHON_VERSION=$(python3 -c "print('{}.{}'.format(__import__('sys').version_info.major, __import__('sys').version_info.minor))") cargo ndk -t arm64-v8a build --release + +# Builds libafl for Android x86_64 +build-android-x86_64: + cd {{ LIBAFL_DIR }} && PYO3_CROSS_PYTHON_VERSION=$(python3 -c "print('{}.{}'.format(__import__('sys').version_info.major, __import__('sys').version_info.minor))") cargo ndk -t x86_64 build --release + +# Builds libafl for iOS +build-ios: + PYO3_CROSS_PYTHON_VERSION=$(python3 -c "print('{}.{}'.format(__import__('sys').version_info.major, __import__('sys').version_info.minor))") cargo build --target aarch64-apple-ios && cd {{ ROOT_DIR }}/libafl_frida && cargo build --target aarch64-apple-ios + +# Increase mem limit for macos +[macos] +increase-mem-limits: + {{ SCRIPTS_DIR }}/shmem_limits_macos.sh + +# Run Smoketest for the libafl concolic executor +[linux] +concolic-smoke-test: + {{ ROOT_DIR }}/libafl_concolic/test/smoke_test.sh + +[unix] +test-repro-qemu-tmin: + cd {{ FUZZERS_DIR }}/binary_only/qemu_tmin && ./repro + +# Tests everything (crates, fuzzers, docs, repro) +[linux] +test-all: test test-fuzzers test-docs test-repro-qemu-tmin concolic-smoke-test doc + +# Tests everything (crates, fuzzers, docs, repro) +[macos] +test-all: test test-fuzzers test-docs test-repro-qemu-tmin doc + +# Tests everything (crates, fuzzers, docs) +[windows] +test-all: test test-fuzzers test-docs doc diff --git a/crates/exceptional/src/unix_signals.rs b/crates/exceptional/src/unix_signals.rs index fcadad2f950..84230ec2f41 100644 --- a/crates/exceptional/src/unix_signals.rs +++ b/crates/exceptional/src/unix_signals.rs @@ -437,6 +437,8 @@ static mut SIGNAL_HANDLERS: [Option; 32] = [ unsafe fn handle_signal(sig: c_int, info: *mut siginfo_t, void: *mut c_void) { unsafe { let signal = &Signal::try_from(sig).unwrap(); + #[cfg(feature = "std")] + eprintln!("DEBUG: Handling signal: {:?}", signal); let handler = { match &SIGNAL_HANDLERS[*signal as usize] { Some(handler_holder) => &mut **handler_holder.handler.get(), diff --git a/crates/libafl/src/events/restarting.rs b/crates/libafl/src/events/restarting.rs index 21e1d96fde3..0fc12159e2a 100644 --- a/crates/libafl/src/events/restarting.rs +++ b/crates/libafl/src/events/restarting.rs @@ -11,6 +11,8 @@ use libafl_bolts::{ shmem::ShMemProvider, staterestore::StateRestorer, }; +#[cfg(all(unix, feature = "std"))] +use libc; use serde::{Serialize, de::DeserializeOwned}; #[cfg(all(unix, not(miri)))] @@ -232,20 +234,62 @@ where #[cfg(unix)] let child_status = if self.fork { self.shmem_provider.pre_fork()?; + // Block SIGINT to ensure we can check if it was delivered after waitpid + #[cfg(all(unix, feature = "std"))] + unsafe { + let mut set: libc::sigset_t = core::mem::zeroed(); + libc::sigemptyset(&mut set); + libc::sigaddset(&mut set, libc::SIGINT); + libc::pthread_sigmask(libc::SIG_BLOCK, &set, core::ptr::null_mut()); + } + match unsafe { fork() }? { ForkResult::Parent(handle) => { + self.shmem_provider.post_fork(false)?; + let status = handle.status(); + + #[cfg(all(unix, feature = "std"))] unsafe { - libc::signal(libc::SIGINT, libc::SIG_IGN); + let mut set: libc::sigset_t = core::mem::zeroed(); + libc::sigemptyset(&mut set); + libc::sigaddset(&mut set, libc::SIGINT); + let mut pending: libc::sigset_t = core::mem::zeroed(); + libc::sigpending(&mut pending); + if libc::sigismember(&pending, libc::SIGINT) == 1 { + // If we have a pending SIGINT, it means the process group received a SIGINT + // (e.g. from Ctrl+C or timeout). We treat this as a clean shutdown. + // We unblock the signal to ensure it's cleared/handled if we were to continue, + // but here we return ShuttingDown immediately. + libc::pthread_sigmask( + libc::SIG_UNBLOCK, + &set, + core::ptr::null_mut(), + ); + return Err(Error::shutting_down()); + } + libc::pthread_sigmask( + libc::SIG_UNBLOCK, + &set, + core::ptr::null_mut(), + ); } - self.shmem_provider.post_fork(false)?; - handle.status() + status } ForkResult::Child => { + #[cfg(all(unix, feature = "std"))] + unsafe { + let mut set: libc::sigset_t = core::mem::zeroed(); + libc::sigemptyset(&mut set); + libc::sigaddset(&mut set, libc::SIGINT); + libc::pthread_sigmask( + libc::SIG_UNBLOCK, + &set, + core::ptr::null_mut(), + ); + } + self.shmem_provider.post_fork(true)?; - // We need to return the staterestorer from the child - // But we don't have it in a variable here (it's in mgr) - // Actually we can just break and let the code below handle it - // But we need to make sure we don't drop mgr or staterestorer incorrectly + break (staterestorer, self.shmem_provider.clone(), None::); } } @@ -265,6 +309,7 @@ where core::sync::atomic::compiler_fence(Ordering::SeqCst); + // If the child exited via Ctrl+C, we stop the respawner. if child_status == CTRL_C_EXIT || staterestorer.wants_to_exit() { return Err(Error::shutting_down()); } diff --git a/crates/libafl_build/Cargo.toml b/crates/libafl_build/Cargo.toml new file mode 100644 index 00000000000..c27a6067460 --- /dev/null +++ b/crates/libafl_build/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "libafl_build" +version = "0.16.0" +edition = "2021" +description = "Build-time utilities for LibAFL" +license = "MIT OR Apache-2.0" +repository = "https://github.com/AFLplusplus/LibAFL/" +keywords = ["fuzzing", "testing", "build"] +categories = ["development-tools::testing", "development-tools::build-utils"] + +[dependencies] +which = { workspace = true } +glob = { workspace = true } diff --git a/crates/libafl_build/LICENSE-APACHE b/crates/libafl_build/LICENSE-APACHE new file mode 120000 index 00000000000..1cd601d0a3a --- /dev/null +++ b/crates/libafl_build/LICENSE-APACHE @@ -0,0 +1 @@ +../../LICENSE-APACHE \ No newline at end of file diff --git a/crates/libafl_build/LICENSE-MIT b/crates/libafl_build/LICENSE-MIT new file mode 120000 index 00000000000..b2cfbdc7b0b --- /dev/null +++ b/crates/libafl_build/LICENSE-MIT @@ -0,0 +1 @@ +../../LICENSE-MIT \ No newline at end of file diff --git a/crates/libafl_build/README.md b/crates/libafl_build/README.md new file mode 100644 index 00000000000..05fc18b5c01 --- /dev/null +++ b/crates/libafl_build/README.md @@ -0,0 +1,69 @@ +# `LibAFL_build`: Build-time utilities for LibAFL + +LibAFL logo + +The `libafl_build` crate provides build-time utilities for LibAFL, specifically for detecting LLVM tools and versions. It is used by other LibAFL crates to ensure they are built with the correct LLVM configuration. + +## Features + +* **LLVM Tool Detection**: Finds `llvm-config`, `llvm-nm`, `llvm-objcopy`, and other tools, handling versioned binaries (e.g., `llvm-config-15`) and platform-specific paths (e.g., Homebrew on macOS). +* **Version Detection**: Detects the system LLVM version and the LLVM version used by `rustc`. + +## Examples + +```rust +use libafl_build::{find_llvm_config, find_llvm_tool, find_llvm_version}; + +// Find llvm-config +if let Ok(path) = find_llvm_config() { + println!("Found llvm-config at: {}", path); +} + +// Find a specific tool like llvm-nm +if let Ok(path) = find_llvm_tool("llvm-nm") { + println!("Found llvm-nm at: {}", path); +} + +// Check LLVM version +if let Some(version) = find_llvm_version() { + println!("Detected LLVM version: {}", version); +} +``` + +## Maintainers + +`LibAFL_build` is written and maintained by + +* [Andrea Fioraldi](https://twitter.com/andreafioraldi) +* [Dominik Maier](https://bsky.app/profile/dmnk.bsky.social) +* [s1341](https://twitter.com/srubenst1341) +* [Dongjia Zhang](https://github.com/tokatoka) +* [Addison Crump](https://github.com/addisoncrump) + +## Contributing + +For bugs, feel free to open issues or contact us directly. Thank you for your support. <3 + +Even though we will gladly assist you in finishing up your PR, try to + +* keep all the crates compiling with *stable* rust (hide the eventual non-stable code under `cfg`s.) +* run `cargo nightly fmt` on your code before pushing +* check the output of `cargo clippy --all` or `./clippy.sh` +* run `cargo build --no-default-features` to check for `no_std` compatibility (and possibly add `#[cfg(feature = "std")]`) to hide parts of your code. + +Some parts in this list may sound hard, but don't be afraid to open a PR if you cannot fix them by yourself. We will gladly assist. + +#### License + + +Licensed under either of Apache License, Version +2.0 or MIT license at your option. + + +
+ + +Unless you explicitly state otherwise, any contribution intentionally submitted +for inclusion in this crate by you, as defined in the Apache-2.0 license, shall +be dual licensed as above, without any additional terms or conditions. + diff --git a/crates/libafl_build/src/lib.rs b/crates/libafl_build/src/lib.rs new file mode 100644 index 00000000000..6b0a6e7b1e4 --- /dev/null +++ b/crates/libafl_build/src/lib.rs @@ -0,0 +1,344 @@ +#![doc = include_str!("../README.md")] +#![cfg_attr( + not(test), + warn( + missing_debug_implementations, + missing_docs, + trivial_casts, + trivial_numeric_casts, + unused_extern_crates, + unused_import_braces, + unused_qualifications, + unused_results + ) +)] +#![cfg_attr( + test, + deny( + missing_debug_implementations, + missing_docs, + trivial_casts, + trivial_numeric_casts, + unused_extern_crates, + unused_import_braces, + unused_qualifications, + unused_must_use, + unused_results + ) +)] +#![cfg_attr( + test, + deny( + bad_style, + dead_code, + improper_ctypes, + non_shorthand_field_patterns, + no_mangle_generic_items, + overflowing_literals, + path_statements, + patterns_in_fns_without_body, + unconditional_recursion, + unused, + unused_allocation, + unused_comparisons, + unused_parens, + while_true + ) +)] + +use std::{env, process::Command}; + +use which::which; + +#[cfg(not(target_vendor = "apple"))] +/// The maximum supported LLVM version +pub const LLVM_VERSION_MAX: u32 = 33; + +#[cfg(not(target_vendor = "apple"))] +/// The minimum supported LLVM versions +pub const LLVM_VERSION_MIN: u32 = 15; + +/// Search for `llvm-config` in the system. +/// +/// It checks: +/// 1. `LLVM_CONFIG` environment variable. +/// 2. `llvm-config` in `brew` (MacOS). +/// 3. `llvm-config-VERSION` for versions in `LLVM_VERSION_MIN..=LLVM_VERSION_MAX`. +/// 4. `llvm-config` in PATH. +/// +/// If an exact match is not found, it tries to find the newest available version. +pub fn find_llvm_config() -> Result { + if let Ok(var) = env::var("LLVM_CONFIG") { + return Ok(var); + } + + // for Github Actions, we check if we find llvm-config in brew. + #[cfg(target_vendor = "apple")] + match find_llvm_config_brew() { + Ok(llvm_dir) => return Ok(llvm_dir.to_str().unwrap().to_string()), + Err(err) => { + println!("cargo:warning={err}"); + } + } + + #[cfg(any(target_os = "solaris", target_os = "illumos"))] + for version in (LLVM_VERSION_MIN..=LLVM_VERSION_MAX).rev() { + let llvm_config_name: String = format!("/usr/clang/{version}.0/bin/llvm-config"); + if Path::new(&llvm_config_name).exists() { + return Ok(llvm_config_name); + } + } + + #[cfg(not(any(target_vendor = "apple", target_os = "solaris", target_os = "illumos")))] + { + // First try to find a version that is >= rustc_llvm_ver if we can determine it, + // but since this is a generic helper, we just search for all versions. + // We can prioritize versions if needed. + + for version in (LLVM_VERSION_MIN..=LLVM_VERSION_MAX).rev() { + let llvm_config_name: String = format!("llvm-config-{version}"); + if which(&llvm_config_name).is_ok() { + return Ok(llvm_config_name); + } + } + } + + if which("llvm-config").is_ok() { + return Ok("llvm-config".to_owned()); + } + + Err("could not find llvm-config".to_owned()) +} + +/// Execute `llvm-config` with the given arguments. +/// +/// # Panics +/// Panics if `llvm-config` cannot be found or executed. +pub fn exec_llvm_config(args: &[&str]) -> Result { + let llvm_config = find_llvm_config()?; + match Command::new(&llvm_config).args(args).output() { + Ok(output) => { + if output.status.success() { + Ok(String::from_utf8(output.stdout) + .expect("Unexpected llvm-config output") + .trim() + .to_string()) + } else { + Err(format!( + "llvm-config failed with error: {}", + String::from_utf8_lossy(&output.stderr) + )) + } + } + Err(e) => Err(format!("Could not execute {llvm_config}: {e}")), + } +} + +/// Find the LLVM version. +/// +/// Checks `LLVM_VERSION` environment variable first, then calls `llvm-config --version`. +pub fn find_llvm_version() -> Option { + let llvm_env_version = env::var("LLVM_VERSION"); + let output = if let Ok(version) = llvm_env_version { + version + } else { + exec_llvm_config(&["--version"]).ok()? + }; + if let Some(major) = output.split('.').collect::>().first() { + if let Ok(res) = major.parse::() { + return Some(res); + } + } + None +} + +/// Find a specific LLVM tool (e.g., `llvm-nm`, `llvm-objcopy`). +/// +/// Checks `TOOL_NAME` environment variable (uppercased, hyphens to underscores), +/// then searches for versioned binaries, then the plain binary name. +pub fn find_llvm_tool(tool: &str) -> Result { + if let Ok(var) = env::var(tool.to_uppercase().replace('-', "_")) { + return Ok(var); + } + + let tool_name = tool; + #[cfg(not(any(target_vendor = "apple", target_os = "solaris", target_os = "illumos")))] + { + let tool_name_versioned = |version: u32| format!("{tool}-{version}"); + for version in (LLVM_VERSION_MIN..=LLVM_VERSION_MAX).rev() { + let name = tool_name_versioned(version); + if which(&name).is_ok() { + return Ok(name); + } + } + } + + if which(tool_name).is_ok() { + return Ok(tool_name.to_owned()); + } + + Err(format!("could not find {tool}")) +} + +#[cfg(target_vendor = "apple")] +fn find_llvm_config_brew() -> Result { + use std::str; + + use glob::glob; + + match Command::new("brew").arg("--prefix").output() { + Ok(output) => { + let brew_location = str::from_utf8(&output.stdout).unwrap_or_default().trim(); + if brew_location.is_empty() { + return Err("Empty return from brew --prefix".to_string()); + } + let location_suffix = "opt/llvm/bin/llvm-config"; + let prefix_glob = [ + // location for non cellared llvm + format!("{brew_location}/{location_suffix}"), + ]; + let glob_results = prefix_glob.iter().flat_map(|location| { + glob(location).unwrap_or_else(|err| { + panic!("Could not read glob path {location} ({err})"); + }) + }); + if let Some(path) = glob_results.last() { + return Ok(path.unwrap()); + } + } + Err(err) => return Err(format!("Could not execute brew --prefix: {err:?}")), + } + match Command::new("brew").arg("--cellar").output() { + Ok(output) => { + let brew_cellar_location = str::from_utf8(&output.stdout).unwrap_or_default().trim(); + if brew_cellar_location.is_empty() { + return Err("Empty return from brew --cellar".to_string()); + } + let location_suffix = "*/bin/llvm-config"; + let cellar_glob = [ + // location for explicitly versioned brew formulae + format!("{brew_cellar_location}/llvm@*/{location_suffix}"), + // location for current release brew formulae + format!("{brew_cellar_location}/llvm/{location_suffix}"), + ]; + let glob_results = cellar_glob.iter().flat_map(|location| { + glob(location).unwrap_or_else(|err| { + panic!("Could not read glob path {location} ({err})"); + }) + }); + match glob_results.last() { + Some(path) => Ok(path.unwrap()), + None => Err(format!( + "No llvm-config found in brew cellar with patterns {}", + cellar_glob.join(" ") + )), + } + } + Err(err) => Err(format!("Could not execute brew --cellar: {err:?}")), + } +} + +/// Execute `rustc` with the given arguments. +/// +/// # Panics +/// Panics if `rustc` cannot be executed. +pub fn exec_rustc(args: &[&str]) -> String { + let rustc = env::var("RUSTC").unwrap_or_else(|_| "rustc".to_string()); + match Command::new(rustc).args(args).output() { + Ok(output) => String::from_utf8(output.stdout) + .expect("Unexpected rustc output") + .trim() + .to_string(), + Err(e) => panic!("Could not execute rustc: {e}"), + } +} + +/// Find the LLVM version used by `rustc`. +pub fn find_rustc_llvm_version() -> Option { + let output = exec_rustc(&["--verbose", "--version"]); + let ver = output.split(':').next_back().unwrap().trim(); + if let Some(major) = ver.split('.').collect::>().first() { + if let Ok(res) = major.parse::() { + return Some(res); + } + } + None +} + +/// Get the extension for a shared object (dll, so, dylib) +/// +/// # Panics +/// Panics if the target family is unsupported (not windows or unix). +pub fn dll_extension<'a>() -> &'a str { + if let Ok(vendor) = env::var("CARGO_CFG_TARGET_VENDOR") { + if vendor == "apple" { + return "dylib"; + } + } + let family = env::var("CARGO_CFG_TARGET_FAMILY").unwrap_or_else(|_| "unknown".into()); + match family.as_str() { + "windows" => "dll", + "unix" => "so", + _ => panic!("Unsupported target family: {family}"), + } +} + +/// Use `xcrun` to get the path to the Xcode SDK tools library path, for linking +/// +/// # Panics +/// Panics if `xcrun` fails to execute. +pub fn find_macos_sdk_libs() -> String { + let sdk_path_out = Command::new("xcrun") + .arg("--show-sdk-path") + .output() + .expect("Failed to execute xcrun. Make sure you have Xcode installed and executed `sudo xcode-select --install`"); + format!( + "-L{}/usr/lib", + String::from_utf8(sdk_path_out.stdout).unwrap().trim() + ) +} + +/// Get the LLVM bindir. +/// +/// Checks `LLVM_BINDIR` env var first, then `llvm-config --bindir`. +pub fn llvm_bindir() -> Result { + if let Ok(bindir) = env::var("LLVM_BINDIR") { + Ok(bindir) + } else { + exec_llvm_config(&["--bindir"]) + } +} + +/// Get the LLVM cxxflags. +/// +/// Checks `LLVM_CXXFLAGS` env var first, then `llvm-config --cxxflags`. +pub fn llvm_cxxflags() -> Result, String> { + let cxxflags = if let Ok(flags) = env::var("LLVM_CXXFLAGS") { + flags + } else { + exec_llvm_config(&["--cxxflags"])? + }; + Ok(cxxflags.split_whitespace().map(String::from).collect()) +} + +/// Get the LLVM ldflags. +/// +/// Checks `LLVM_LDFLAGS` env var first, then `llvm-config --ldflags` (with system libs on Windows/Apple). +pub fn llvm_ldflags() -> Result, String> { + if let Ok(flags) = env::var("LLVM_LDFLAGS") { + return Ok(flags.split_whitespace().map(String::from).collect()); + } + + let mut llvm_config_ld = vec![]; + if cfg!(target_vendor = "apple") { + llvm_config_ld.push("--libs"); + } + if cfg!(windows) { + llvm_config_ld.push("--libs"); + llvm_config_ld.push("--system-libs"); + } + llvm_config_ld.push("--ldflags"); + + let ldflags = exec_llvm_config(&llvm_config_ld)?; + Ok(ldflags.split_whitespace().map(String::from).collect()) +} diff --git a/crates/libafl_cc/Cargo.toml b/crates/libafl_cc/Cargo.toml index 69234f47216..ac48684d928 100644 --- a/crates/libafl_cc/Cargo.toml +++ b/crates/libafl_cc/Cargo.toml @@ -42,6 +42,7 @@ dump-cfg = [] [build-dependencies] cc = { workspace = true, features = ["parallel"] } +libafl_build = { workspace = true } which = { workspace = true } [target.'cfg(target_vendor = "apple")'.build-dependencies] diff --git a/crates/libafl_cc/build.rs b/crates/libafl_cc/build.rs index 4966c6340c1..f606fc95336 100644 --- a/crates/libafl_cc/build.rs +++ b/crates/libafl_cc/build.rs @@ -12,173 +12,6 @@ use core::str; use std::path::PathBuf; use std::{env, fs::File, io::Write, path::Path, process::Command}; -#[cfg(target_vendor = "apple")] -use glob::glob; -use which::which; - -/// The max version of `LLVM` we're looking for -#[cfg(not(target_vendor = "apple"))] -const LLVM_VERSION_MAX: u32 = 33; - -/// The min version of `LLVM` we're looking for -#[cfg(not(target_vendor = "apple"))] -const LLVM_VERSION_MIN: u32 = 15; - -/// Get the extension for a shared object -#[cfg(any( - feature = "function-logging", - feature = "cmplog-routines", - feature = "autotokens", - feature = "coverage-accounting", - feature = "cmplog-instructions", - feature = "ctx", - feature = "dump-cfg", -))] -fn dll_extension<'a>() -> &'a str { - if let Ok(vendor) = env::var("CARGO_CFG_TARGET_VENDOR") - && vendor == "apple" - { - return "dylib"; - } - let family = env::var("CARGO_CFG_TARGET_FAMILY").unwrap_or_else(|_| "unknown".into()); - match family.as_str() { - "windows" => "dll", - "unix" => "so", - _ => panic!("Unsupported target family: {family}"), - } -} - -/// Github Actions for `MacOS` seems to have troubles finding `llvm-config`. -/// Hence, we go look for it ourselves. -#[cfg(target_vendor = "apple")] -fn find_llvm_config_brew() -> Result { - match Command::new("brew").arg("--prefix").output() { - Ok(output) => { - let brew_location = str::from_utf8(&output.stdout).unwrap_or_default().trim(); - if brew_location.is_empty() { - return Err("Empty return from brew --prefix".to_string()); - } - let location_suffix = "opt/llvm/bin/llvm-config"; - let prefix_glob = [ - // location for non cellared llvm - format!("{brew_location}/{location_suffix}"), - ]; - let glob_results = prefix_glob.iter().flat_map(|location| { - glob(location).unwrap_or_else(|err| { - panic!("Could not read glob path {location} ({err})"); - }) - }); - if let Some(path) = glob_results.last() { - return Ok(path.unwrap()); - } - } - Err(err) => return Err(format!("Could not execute brew --prefix: {err:?}")), - } - match Command::new("brew").arg("--cellar").output() { - Ok(output) => { - let brew_cellar_location = str::from_utf8(&output.stdout).unwrap_or_default().trim(); - if brew_cellar_location.is_empty() { - return Err("Empty return from brew --cellar".to_string()); - } - let location_suffix = "*/bin/llvm-config"; - let cellar_glob = [ - // location for explicitly versioned brew formulae - format!("{brew_cellar_location}/llvm@*/{location_suffix}"), - // location for current release brew formulae - format!("{brew_cellar_location}/llvm/{location_suffix}"), - ]; - let glob_results = cellar_glob.iter().flat_map(|location| { - glob(location).unwrap_or_else(|err| { - panic!("Could not read glob path {location} ({err})"); - }) - }); - match glob_results.last() { - Some(path) => Ok(path.unwrap()), - None => Err(format!( - "No llvm-config found in brew cellar with patterns {}", - cellar_glob.join(" ") - )), - } - } - Err(err) => Err(format!("Could not execute brew --cellar: {err:?}")), - } -} - -fn find_llvm_config() -> Result { - if let Ok(var) = env::var("LLVM_CONFIG") { - return Ok(var); - } - - // for Github Actions, we check if we find llvm-config in brew. - #[cfg(target_vendor = "apple")] - match find_llvm_config_brew() { - Ok(llvm_dir) => return Ok(llvm_dir.to_str().unwrap().to_string()), - Err(err) => { - println!("cargo:warning={err}"); - } - } - - #[cfg(any(target_os = "solaris", target_os = "illumos"))] - for version in (LLVM_VERSION_MIN..=LLVM_VERSION_MAX).rev() { - let llvm_config_name: String = format!("/usr/clang/{version}.0/bin/llvm-config"); - if Path::new(&llvm_config_name).exists() { - return Ok(llvm_config_name); - } - } - - #[cfg(not(any(target_vendor = "apple", target_os = "solaris", target_os = "illumos")))] - for version in (LLVM_VERSION_MIN..=LLVM_VERSION_MAX).rev() { - let llvm_config_name: String = format!("llvm-config-{version}"); - if which(&llvm_config_name).is_ok() { - return Ok(llvm_config_name); - } - } - - if which("llvm-config").is_ok() { - return Ok("llvm-config".to_owned()); - } - - Err("could not find llvm-config".to_owned()) -} - -fn exec_llvm_config(args: &[&str]) -> String { - let llvm_config = find_llvm_config().expect("Unexpected error"); - match Command::new(&llvm_config).args(args).output() { - Ok(output) => String::from_utf8(output.stdout) - .expect("Unexpected llvm-config output") - .trim() - .to_string(), - Err(e) => panic!("Could not execute {llvm_config}: {e}"), - } -} - -/// Use `xcrun` to get the path to the Xcode SDK tools library path, for linking -fn find_macos_sdk_libs() -> String { - let sdk_path_out = Command::new("xcrun") - .arg("--show-sdk-path") - .output() - .expect("Failed to execute xcrun. Make sure you have Xcode installed and executed `sudo xcode-select --install`"); - format!( - "-L{}/usr/lib", - String::from_utf8(sdk_path_out.stdout).unwrap().trim() - ) -} - -fn find_llvm_version() -> Option { - let llvm_env_version = env::var("LLVM_VERSION"); - let output = if let Ok(version) = llvm_env_version { - version - } else { - exec_llvm_config(&["--version"]) - }; - if let Some(major) = output.split('.').collect::>().first() - && let Ok(res) = major.parse::() - { - return Some(res); - } - None -} - #[cfg(any( feature = "function-logging", feature = "cmplog-routines", @@ -218,7 +51,7 @@ fn build_pass( .args(additionals) .args(ldflags) .arg("-o") - .arg(out_dir.join(format!("{src_stub}.{}", dll_extension()))) + .arg(out_dir.join(format!("{src_stub}.{}", libafl_build::dll_extension()))) .status(); Some(r) @@ -234,7 +67,7 @@ fn build_pass( .arg(format!( "/OUT:{}", out_dir - .join(format!("{src_stub}.{}", dll_extension())) + .join(format!("{src_stub}.{}", libafl_build::dll_extension())) .display() )) .status(); @@ -298,17 +131,13 @@ fn main() { println!("cargo:rerun-if-changed=src/common-llvm.h"); println!("cargo:rerun-if-changed=build.rs"); - let llvm_bindir = env::var("LLVM_BINDIR"); - let llvm_ar_path = env::var("LLVM_AR_PATH"); - let llvm_cxxflags = env::var("LLVM_CXXFLAGS"); - let llvm_ldflags = env::var("LLVM_LDFLAGS"); let llvm_version = env::var("LLVM_VERSION"); // test if llvm-config is available and we can compile the passes - if find_llvm_config().is_err() - && !(llvm_bindir.is_ok() - && llvm_cxxflags.is_ok() - && llvm_ldflags.is_ok() + if libafl_build::find_llvm_config().is_err() + && !(env::var("LLVM_BINDIR").is_ok() + && env::var("LLVM_CXXFLAGS").is_ok() + && env::var("LLVM_LDFLAGS").is_ok() && llvm_version.is_ok()) { println!( @@ -333,16 +162,17 @@ pub const LIBAFL_CC_LLVM_VERSION: Option = None; return; } - let llvm_bindir = if let Ok(bindir) = llvm_bindir { - bindir - } else { - exec_llvm_config(&["--bindir"]) - }; + let llvm_bindir = libafl_build::llvm_bindir().expect("Could not find LLVM bindir"); + let llvm_ar_path = env::var("LLVM_AR_PATH"); + let llvm_cxxflags = libafl_build::llvm_cxxflags().expect("Could not find LLVM cxxflags"); + let llvm_ldflags = libafl_build::llvm_ldflags().expect("Could not find LLVM ldflags"); + let bindir_path = Path::new(&llvm_bindir); let llvm_ar_path = if let Ok(ar_path) = llvm_ar_path { ar_path } else { - exec_llvm_config(&["--bindir"]) + libafl_build::exec_llvm_config(&["--bindir"]) + .expect("Could not execute llvm-config --bindir") }; let clang; @@ -382,12 +212,7 @@ pub const LIBAFL_CC_LLVM_VERSION: Option = None; bindir_path.display() ); - let cxxflags = if let Ok(flags) = llvm_cxxflags { - flags - } else { - exec_llvm_config(&["--cxxflags"]) - }; - let mut cxxflags: Vec = cxxflags.split_whitespace().map(String::from).collect(); + let mut cxxflags = llvm_cxxflags; let edge_map_default_size: usize = option_env!("LIBAFL_EDGES_MAP_DEFAULT_SIZE") .map_or(Ok(65_536), str::parse) @@ -402,7 +227,7 @@ pub const LIBAFL_CC_LLVM_VERSION: Option = None; .expect("Could not parse LIBAFL_ACCOUNTING_MAP_SIZE"); cxxflags.push(format!("-DACCOUNTING_MAP_SIZE={acc_map_size}")); - let llvm_version = find_llvm_version(); + let llvm_version = libafl_build::find_llvm_version(); // We want the paths quoted, and debug formatting does that - allow debug formatting. #[allow(unknown_lints)] // not on stable yet @@ -432,22 +257,7 @@ pub const LIBAFL_CC_LLVM_VERSION: Option = None; ) .expect("Could not write file"); - let mut llvm_config_ld = vec![]; - if cfg!(target_vendor = "apple") { - llvm_config_ld.push("--libs"); - } - if cfg!(windows) { - llvm_config_ld.push("--libs"); - llvm_config_ld.push("--system-libs"); - } - llvm_config_ld.push("--ldflags"); - - let ldflags = if let Ok(flags) = llvm_ldflags { - flags - } else { - exec_llvm_config(&llvm_config_ld) - }; - let mut ldflags: Vec<&str> = ldflags.split_whitespace().collect(); + let mut ldflags: Vec<&str> = llvm_ldflags.iter().map(String::as_str).collect(); if cfg!(unix) { cxxflags.push(String::from("-shared")); @@ -482,7 +292,7 @@ pub const LIBAFL_CC_LLVM_VERSION: Option = None; ldflags.push("dynamic_lookup"); // In case the system is configured oddly, we may have trouble finding the SDK. Manually add the linker flag, just in case. - sdk_path = find_macos_sdk_libs(); + sdk_path = libafl_build::find_macos_sdk_libs(); ldflags.push(&sdk_path); } diff --git a/crates/libafl_frida/build.rs b/crates/libafl_frida/build.rs index 978c846abdd..8b1e30478b6 100644 --- a/crates/libafl_frida/build.rs +++ b/crates/libafl_frida/build.rs @@ -16,7 +16,7 @@ fn main() { // Force linking against libc++ if target_vendor != "apple" && target_family == "unix" { - println!("cargo:rustc-link-lib=dylib=c++"); + println!("cargo:rustc-link-lib=dylib=stdc++"); } if target_vendor == "apple" { diff --git a/crates/libafl_libfuzzer/Cargo.toml b/crates/libafl_libfuzzer/Cargo.toml index b998e3bc26c..cebce99096a 100644 --- a/crates/libafl_libfuzzer/Cargo.toml +++ b/crates/libafl_libfuzzer/Cargo.toml @@ -25,6 +25,8 @@ include = [ cc = "1.2.51" rustversion = "1.0.22" toml = { version = "0.9.10", features = ["preserve_order"] } +which = "6.0.3" +libafl_build = { workspace = true } [features] default = ["fork"] diff --git a/crates/libafl_libfuzzer/build.rs b/crates/libafl_libfuzzer/build.rs index efb5bdce59c..1d519b64c7b 100644 --- a/crates/libafl_libfuzzer/build.rs +++ b/crates/libafl_libfuzzer/build.rs @@ -185,6 +185,18 @@ fn rename_symbols(custom_lib_target: &Path) -> PathBuf { let rust_objcopy = target_libdir.join("../bin/llvm-objcopy"); let nm = target_libdir.join("../bin/llvm-nm"); + let nm = if nm.exists() { + nm.to_str().unwrap().to_string() + } else { + libafl_build::find_llvm_tool("llvm-nm").expect("Could not find llvm-nm") + }; + + let rust_objcopy = if rust_objcopy.exists() { + rust_objcopy.to_str().unwrap().to_string() + } else { + libafl_build::find_llvm_tool("llvm-objcopy").expect("Could not find llvm-objcopy") + }; + let redefined_archive_path = custom_lib_target.join("libFuzzer.a"); let redefined_symbols = custom_lib_target.join("redefs.txt"); diff --git a/crates/libafl_libfuzzer/src/lib.rs b/crates/libafl_libfuzzer/src/lib.rs index 233bb529e90..63de110e275 100644 --- a/crates/libafl_libfuzzer/src/lib.rs +++ b/crates/libafl_libfuzzer/src/lib.rs @@ -134,6 +134,7 @@ unsafe extern "C" { // variable which is set by the build script, which is not run under clippy. not(clippy) ))] +/// The raw bytes of the `libafl_libfuzzer` runtime library pub const LIBAFL_LIBFUZZER_RUNTIME_LIBRARY: &'static [u8] = include_bytes!(env!("LIBAFL_LIBFUZZER_RUNTIME_PATH")); diff --git a/crates/libafl_nyx/build_nyx_support.sh b/crates/libafl_nyx/build_nyx_support.sh index e073ba65304..ef661fb9c03 100755 --- a/crates/libafl_nyx/build_nyx_support.sh +++ b/crates/libafl_nyx/build_nyx_support.sh @@ -54,7 +54,7 @@ if [ ! -f "QEMU-Nyx/x86_64-softmmu/qemu-system-x86_64" ]; then cd QEMU-Nyx/ || return # We need to copy our custom `Makefile.libxdc` after `git submodule update`, otherwise we get a git error. sed -i "s,git submodule update libxdc$,git submodule update libxdc \&\& cp $SCRIPT_DIR/Makefile.libxdc ./libxdc/Makefile || exit 1," compile_qemu_nyx.sh - ./compile_qemu_nyx.sh lto + ./compile_qemu_nyx.sh lto || exit 1 cd .. fi diff --git a/crates/libafl_qemu/Justfile b/crates/libafl_qemu/Justfile index 58f481ee985..541b9187862 100644 --- a/crates/libafl_qemu/Justfile +++ b/crates/libafl_qemu/Justfile @@ -1,2 +1,2 @@ doc: - DOCS_RS=1 cargo doc -p libafl_qemu --no-deps --no-default-features --features x86_64,usermode,python,document-features \ No newline at end of file + RUSTDOCFLAGS="-Dwarnings" DOCS_RS=1 cargo doc -p libafl_qemu --locked --no-deps --no-default-features --features x86_64,usermode,python,document-features \ No newline at end of file diff --git a/crates/libafl_qemu/libafl_qemu_build/Cargo.toml b/crates/libafl_qemu/libafl_qemu_build/Cargo.toml index 9ac22184f65..1d2709f46f8 100644 --- a/crates/libafl_qemu/libafl_qemu_build/Cargo.toml +++ b/crates/libafl_qemu/libafl_qemu_build/Cargo.toml @@ -36,6 +36,7 @@ paranoid_debug = [ [dependencies] bindgen = { workspace = true } +libafl_build = { workspace = true } which = { workspace = true } json = "0.12.4" shell-words = "1.1.1" diff --git a/crates/libafl_qemu/libafl_qemu_build/src/lib.rs b/crates/libafl_qemu/libafl_qemu_build/src/lib.rs index 9942a9162e2..f210f08d0b5 100644 --- a/crates/libafl_qemu/libafl_qemu_build/src/lib.rs +++ b/crates/libafl_qemu/libafl_qemu_build/src/lib.rs @@ -8,7 +8,6 @@ use std::{ fs::{self, File}, io::{Read, Seek, SeekFrom, Write}, path::{Path, PathBuf}, - process::Command, sync::{LazyLock, Mutex}, }; @@ -16,7 +15,6 @@ use std::{ //use regex::Regex; //#[rustversion::nightly] //use rustc_version::Version; -use which::which; mod bindings; mod build; @@ -26,8 +24,6 @@ pub use build::build; #[rustversion::nightly] use crate::build::LIBAFL_QEMU_GIT_REV; -const LLVM_VERSION_MAX: i32 = 33; - static CARGO_RPATH: LazyLock>> = LazyLock::new(Mutex::default); static CARGO_RPATH_SEPARATOR: &str = "|"; @@ -88,72 +84,7 @@ pub fn build_with_bindings( // For bindgen, the llvm version must be >= of the rust llvm version fn find_llvm_config() -> Result { - if let Ok(var) = env::var("LLVM_CONFIG") { - return Ok(var); - } - - let rustc_llvm_ver = find_rustc_llvm_version().unwrap(); - for version in (rustc_llvm_ver..=LLVM_VERSION_MAX).rev() { - let llvm_config_name: String = format!("llvm-config-{version}"); - if which(&llvm_config_name).is_ok() { - return Ok(llvm_config_name); - } - } - - if which("llvm-config").is_ok() - && let Some(ver) = find_llvm_version("llvm-config".to_owned()) - { - if ver < rustc_llvm_ver { - println!( - "cargo:warning=Version of llvm-config is {ver} but needs to be at least rustc's version ({rustc_llvm_ver})! We will (try to) continue to build. Continue at your own risk, or rebuild with a set LLVM_CONFIG_PATH env variable, pointing to a newer version." - ); - } - return Ok("llvm-config".to_owned()); - } - - Err("Could not find llvm-config".to_owned()) -} - -fn exec_llvm_config(llvm_config: String, args: &[&str]) -> String { - match Command::new(llvm_config).args(args).output() { - Ok(output) => String::from_utf8(output.stdout) - .expect("Unexpected llvm-config output") - .trim() - .to_string(), - Err(e) => panic!("Could not execute llvm-config: {e}"), - } -} - -fn find_llvm_version(llvm_config: String) -> Option { - let output = exec_llvm_config(llvm_config, &["--version"]); - if let Some(major) = output.split('.').collect::>().first() - && let Ok(res) = major.parse::() - { - return Some(res); - } - None -} - -fn exec_rustc(args: &[&str]) -> String { - let rustc = env::var("RUSTC").unwrap(); - match Command::new(rustc).args(args).output() { - Ok(output) => String::from_utf8(output.stdout) - .expect("Unexpected rustc output") - .trim() - .to_string(), - Err(e) => panic!("Could not execute rustc: {e}"), - } -} - -fn find_rustc_llvm_version() -> Option { - let output = exec_rustc(&["--verbose", "--version"]); - let ver = output.split(':').next_back().unwrap().trim(); - if let Some(major) = ver.split('.').collect::>().first() - && let Ok(res) = major.parse::() - { - return Some(res); - } - None + libafl_build::find_llvm_config() } //linux-user_main.c.o libqemu-x86_64-linux-user.fa.p diff --git a/crates/libafl_qemu/libvharness_sys/build.rs b/crates/libafl_qemu/libvharness_sys/build.rs index 64f9d59c2b1..11a305d391d 100644 --- a/crates/libafl_qemu/libvharness_sys/build.rs +++ b/crates/libafl_qemu/libvharness_sys/build.rs @@ -102,6 +102,7 @@ fn main() { } else { "lqemu".to_string() }; + println!("cargo:warning=API: {api}"); let platform = if cfg!(feature = "linux") { "linux".to_string() diff --git a/crates/libafl_qemu/src/executor.rs b/crates/libafl_qemu/src/executor.rs index 768ba9c2742..ac0b9c09c55 100644 --- a/crates/libafl_qemu/src/executor.rs +++ b/crates/libafl_qemu/src/executor.rs @@ -1,3 +1,4 @@ +#![allow(unused_imports)] //! A `QEMU`-based executor for binary-only instrumentation in `LibAFL` use core::{ ffi::c_void, diff --git a/fuzzers/baby/baby_fuzzer_custom_executor/Justfile b/fuzzers/baby/baby_fuzzer_custom_executor/Justfile index daa7b702844..135650a598d 100644 --- a/fuzzers/baby/baby_fuzzer_custom_executor/Justfile +++ b/fuzzers/baby/baby_fuzzer_custom_executor/Justfile @@ -5,30 +5,29 @@ PROFILE_DIR := 'release' CARGO_TARGET_DIR := env("CARGO_TARGET_DIR", "target") FUZZER := CARGO_TARGET_DIR / PROFILE_DIR / FUZZER_NAME - alias build := fuzzer fuzzer: - cargo build --profile={{PROFILE}} + cargo build --profile={{ PROFILE }} run: fuzzer - {{FUZZER}} + {{ FUZZER }} [linux] [macos] test: fuzzer - #!/bin/bash - timeout 30s {{FUZZER}} | tee fuzz_stdout.log || true - if grep -qa "objectives: 1" fuzz_stdout.log; then - echo "Fuzzer is working" - else - echo "Fuzzer does not generate any testcases or any crashes" - exit 1 - fi + #!/bin/bash + timeout 30s {{ FUZZER }} | tee fuzz_stdout.log || true + if grep -qa "objectives: 1" fuzz_stdout.log; then + echo "Fuzzer is working" + else + echo "Fuzzer does not generate any testcases or any crashes" + exit 1 + fi [windows] test: fuzzer - echo "Unsupported on this platform" + echo "Unsupported on this platform" clean: - cargo clean + cargo clean diff --git a/fuzzers/baby/baby_fuzzer_swap_differential/Justfile b/fuzzers/baby/baby_fuzzer_swap_differential/Justfile index 2fb76dd2247..1560f93db1d 100644 --- a/fuzzers/baby/baby_fuzzer_swap_differential/Justfile +++ b/fuzzers/baby/baby_fuzzer_swap_differential/Justfile @@ -6,33 +6,32 @@ CARGO_TARGET_DIR := env("CARGO_TARGET_DIR", "target") FUZZER := CARGO_TARGET_DIR / PROFILE_DIR / FUZZER_NAME LIBAFL_CC := CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cc" - alias build := fuzzer cc: - cargo build --profile={{PROFILE}} --bin libafl_cc + cargo build --profile={{ PROFILE }} --bin libafl_cc fuzzer: cc - cargo build --profile={{PROFILE}} + cargo build --profile={{ PROFILE }} run: fuzzer - {{FUZZER}} + {{ FUZZER }} [linux] [macos] test: fuzzer - #!/bin/bash - timeout 30s {{FUZZER}} | tee fuzz_stdout.log || true - if grep -qa "objectives: 1" fuzz_stdout.log; then - echo "Fuzzer is working" - else - echo "Fuzzer does not generate any testcases or any crashes" - exit 1 - fi + #!/bin/bash + timeout 30s {{ FUZZER }} | tee fuzz_stdout.log || true + if grep -qa "objectives: 1" fuzz_stdout.log; then + echo "Fuzzer is working" + else + echo "Fuzzer does not generate any testcases or any crashes" + exit 1 + fi [windows] test: fuzzer - echo "Unsupported on this platform" + echo "Unsupported on this platform" clean: - cargo clean + cargo clean diff --git a/fuzzers/baby/baby_fuzzer_unicode/Justfile b/fuzzers/baby/baby_fuzzer_unicode/Justfile index 269b5a1fa70..bbc94783a50 100644 --- a/fuzzers/baby/baby_fuzzer_unicode/Justfile +++ b/fuzzers/baby/baby_fuzzer_unicode/Justfile @@ -8,31 +8,31 @@ FUZZER := CARGO_TARGET_DIR / PROFILE_DIR / FUZZER_NAME alias build := fuzzer fuzzer: - cargo build --profile={{PROFILE}} --features=tui + cargo build --profile={{ PROFILE }} --features=tui run: fuzzer - {{FUZZER}} + {{ FUZZER }} [linux] [macos] test: fuzzer - #!/bin/bash - # Use timeout to run the fuzzer for a short time to verify TUI startup - # We use 'script' or similar to fake TTY if needed, but for now just running it is a good check. - # However, TUI might mess up stdout. - # The user specifically asked to "add the tui feature build to just test". - # So we ensure it BUILDS with TUI. - # And we can check if it runs. - cargo build --profile={{PROFILE}} --features=tui - timeout 5s {{FUZZER}} || true - # Test introspection build - cargo build --profile={{PROFILE}} --features=introspection - timeout 5s {{FUZZER}} || true - echo "Fuzzer TUI and Introspection build verification completed." + #!/bin/bash + # Use timeout to run the fuzzer for a short time to verify TUI startup + # We use 'script' or similar to fake TTY if needed, but for now just running it is a good check. + # However, TUI might mess up stdout. + # The user specifically asked to "add the tui feature build to just test". + # So we ensure it BUILDS with TUI. + # And we can check if it runs. + cargo build --profile={{ PROFILE }} --features=tui + timeout 5s {{ FUZZER }} || true + # Test introspection build + cargo build --profile={{ PROFILE }} --features=introspection + timeout 5s {{ FUZZER }} || true + echo "Fuzzer TUI and Introspection build verification completed." [windows] test: fuzzer - echo "Unsupported on this platform" + echo "Unsupported on this platform" clean: - cargo clean + cargo clean diff --git a/fuzzers/binary_only/qemu_cmin/Cargo.lock b/fuzzers/binary_only/qemu_cmin/Cargo.lock index d58bd0b8386..f98d0106bc8 100644 --- a/fuzzers/binary_only/qemu_cmin/Cargo.lock +++ b/fuzzers/binary_only/qemu_cmin/Cargo.lock @@ -369,9 +369,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.49" +version = "1.2.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90583009037521a116abf44494efecd645ba48b6622457080f080b85544e2215" +checksum = "7a0aeaff4ff1a90589618835a598e545176939b97874f7abc7851caa0618f203" dependencies = [ "find-msvc-tools", "jobserver", @@ -478,9 +478,9 @@ dependencies = [ [[package]] name = "cmake" -version = "0.1.56" +version = "0.1.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b042e5d8a74ae91bb0961acd039822472ec99f8ab0948cbf6d1369588f8be586" +checksum = "75443c44cd6b379beb8c5b45d85d0773baf31cce901fe7bb252f4eff3008ef7d" dependencies = [ "cc", ] @@ -933,9 +933,9 @@ checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "find-msvc-tools" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844" +checksum = "645cbb3a84e60b7531617d5ae4e57f7e27308f6445f5abf653209ea76dec8dff" [[package]] name = "flate2" @@ -2139,9 +2139,9 @@ dependencies = [ [[package]] name = "rangemap" -version = "1.7.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbbbbea733ec66275512d0b9694f34102e7d5406fdbe2ad8d21b28dce92887c" +checksum = "973443cf09a9c8656b574a866ab68dfa19f0867d0340648c7d2f6a71b8a8ea68" [[package]] name = "rayon-core" @@ -2401,22 +2401,22 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.145" +version = "1.0.148" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" +checksum = "3084b546a1dd6289475996f182a22aba973866ea8e8b02c51d9f46b1336a22da" dependencies = [ "itoa", "memchr", - "ryu", "serde", "serde_core", + "zmij", ] [[package]] name = "serde_spanned" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e24345aa0fe688594e73770a5f6d1b216508b4f93484c0026d521acd30134392" +checksum = "f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776" dependencies = [ "serde_core", ] @@ -2746,14 +2746,14 @@ dependencies = [ [[package]] name = "toml" -version = "0.9.8" +version = "0.9.10+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dc8b1fb61449e27716ec0e1bdf0f6b8f3e8f6b05391e8497b8b6d7804ea6d8" +checksum = "0825052159284a1a8b4d6c0c86cbc801f2da5afd2b225fa548c72f2e74002f48" dependencies = [ "indexmap", "serde_core", "serde_spanned", - "toml_datetime 0.7.3", + "toml_datetime 0.7.5+spec-1.1.0", "toml_parser", "toml_writer", "winnow", @@ -2767,9 +2767,9 @@ checksum = "3da5db5a963e24bc68be8b17b6fa82814bb22ee8660f192bb182771d498f09a3" [[package]] name = "toml_datetime" -version = "0.7.3" +version = "0.7.5+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533" +checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" dependencies = [ "serde_core", ] @@ -2787,18 +2787,18 @@ dependencies = [ [[package]] name = "toml_parser" -version = "1.0.4" +version = "1.0.6+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" +checksum = "a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44" dependencies = [ "winnow", ] [[package]] name = "toml_writer" -version = "1.0.4" +version = "1.0.6+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df8b2b54733674ad286d16267dcfc7a71ed5c776e4ac7aa3c3e2561f7c637bf2" +checksum = "ab16f14aed21ee8bfd8ec22513f7287cd4a91aa92e44edfe2c17ddd004e92607" [[package]] name = "tuple_list" @@ -3098,9 +3098,9 @@ dependencies = [ [[package]] name = "wide" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afd0e867c652e7c27e88620e1fbf073ad060a919235f50b64f273d9d4092931" +checksum = "ac11b009ebeae802ed758530b6496784ebfee7a87b9abfbcaf3bbe25b814eb25" dependencies = [ "bytemuck", "safe_arch", @@ -3598,3 +3598,9 @@ dependencies = [ "quote", "syn 2.0.111", ] + +[[package]] +name = "zmij" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30e0d8dffbae3d840f64bda38e28391faef673a7b5a6017840f2a106c8145868" diff --git a/fuzzers/binary_only/qemu_cmin/src/fuzzer.rs b/fuzzers/binary_only/qemu_cmin/src/fuzzer.rs index 55e1b78fbdc..020ada58266 100644 --- a/fuzzers/binary_only/qemu_cmin/src/fuzzer.rs +++ b/fuzzers/binary_only/qemu_cmin/src/fuzzer.rs @@ -260,7 +260,7 @@ pub fn fuzz() -> Result<(), Error> { match qemu.run() { Ok(QemuExitReason::Breakpoint(_)) => {} Ok(QemuExitReason::End(QemuShutdownCause::HostSignal(Signal::SigInterrupt))) => { - process::exit(0) + process::exit(libafl_bolts::os::CTRL_C_EXIT) } Err(QemuExitError::UnexpectedExit) => return ExitKind::Crash, _ => panic!("Unexpected QEMU exit."), diff --git a/fuzzers/binary_only/qemu_coverage/Cargo.lock b/fuzzers/binary_only/qemu_coverage/Cargo.lock index 8c5f7ed1fa4..62b5023f40b 100644 --- a/fuzzers/binary_only/qemu_coverage/Cargo.lock +++ b/fuzzers/binary_only/qemu_coverage/Cargo.lock @@ -222,7 +222,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.111", + "syn 2.0.113", ] [[package]] @@ -234,7 +234,7 @@ dependencies = [ "arbitrary-int 1.3.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.113", ] [[package]] @@ -326,22 +326,21 @@ dependencies = [ [[package]] name = "capstone" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "015ef5d5ca1743e3f94af9509ba6bd2886523cfee46e48d15c2ef5216fd4ac9a" +checksum = "f442ae0f2f3f1b923334b4a5386c95c69c1cfa072bafa23d6fae6d9682eb1dd4" dependencies = [ "capstone-sys", - "libc", + "static_assertions", ] [[package]] name = "capstone-sys" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2267cb8d16a1e4197863ec4284ffd1aec26fe7e57c58af46b02590a0235809a0" +checksum = "a4e8087cab6731295f5a2a2bd82989ba4f41d3a428aab2e7c98d8f4db38aac05" dependencies = [ "cc", - "libc", ] [[package]] @@ -369,9 +368,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.47" +version = "1.2.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd405d82c84ff7f35739f175f67d8b9fb7687a0e84ccdc78bd3568839827cf07" +checksum = "7a0aeaff4ff1a90589618835a598e545176939b97874f7abc7851caa0618f203" dependencies = [ "find-msvc-tools", "jobserver", @@ -457,7 +456,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.113", ] [[package]] @@ -478,9 +477,9 @@ dependencies = [ [[package]] name = "cmake" -version = "0.1.54" +version = "0.1.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7caa3f9de89ddbe2c607f4101924c5abec803763ae9534e4f4d7d8f84aa81f0" +checksum = "75443c44cd6b379beb8c5b45d85d0773baf31cce901fe7bb252f4eff3008ef7d" dependencies = [ "cc", ] @@ -613,9 +612,9 @@ dependencies = [ [[package]] name = "ctor" -version = "0.6.1" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ffc71fcdcdb40d6f087edddf7f8f1f8f79e6cf922f555a9ee8779752d4819bd" +checksum = "424e0138278faeb2b401f174ad17e715c829512d74f3d1e81eb43365c2e0590e" dependencies = [ "ctor-proc-macro", "dtor", @@ -658,7 +657,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.111", + "syn 2.0.113", ] [[package]] @@ -669,7 +668,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core", "quote", - "syn 2.0.111", + "syn 2.0.113", ] [[package]] @@ -689,7 +688,7 @@ checksum = "e73f2692d4bd3cac41dca28934a39894200c9fabf49586d77d0e5954af1d7902" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.113", ] [[package]] @@ -710,7 +709,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.113", ] [[package]] @@ -720,7 +719,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" dependencies = [ "derive_builder_core", - "syn 2.0.111", + "syn 2.0.113", ] [[package]] @@ -762,7 +761,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.113", ] [[package]] @@ -827,7 +826,7 @@ checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.113", ] [[package]] @@ -933,9 +932,9 @@ checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "find-msvc-tools" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844" +checksum = "645cbb3a84e60b7531617d5ae4e57f7e27308f6445f5abf653209ea76dec8dff" [[package]] name = "flate2" @@ -1020,7 +1019,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.113", ] [[package]] @@ -1060,9 +1059,9 @@ checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" [[package]] name = "goblin" -version = "0.10.1" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6a80adfd63bd7ffd94fefc3d22167880c440a724303080e5aa686fa36abaa96" +checksum = "4db6758c546e6f81f265638c980e5e84dfbda80cfd8e89e02f83454c8e8124bd" dependencies = [ "log", "plain", @@ -1096,13 +1095,13 @@ checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "hostname" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56f203cd1c76362b69e3863fd987520ac36cf70a8c92627449b2f64a8cf7d65" +checksum = "617aaa3557aef3810a6369d0a99fac8a080891b68bd9f9812a1eeda0c0730cbd" dependencies = [ "cfg-if", "libc", - "windows-link 0.1.1", + "windows-link 0.2.1", ] [[package]] @@ -1303,7 +1302,7 @@ checksum = "6c6e1db7ed32c6c71b759497fae34bf7933636f75a251b9e736555da426f6442" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.113", ] [[package]] @@ -1334,9 +1333,9 @@ checksum = "078e285eafdfb6c4b434e0d31e8cfcb5115b651496faca5749b88fafd4f23bfd" [[package]] name = "just" -version = "1.43.1" +version = "1.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dbaac3fa92e83655abb2ff9efa7dc17a3834d088542d8d2c896b8135abc2b02" +checksum = "8eecd1c97e8468a505ac0c4d10db186ddaea8f05c635e73af7ae32c95f25773a" dependencies = [ "ansi_term", "blake3", @@ -1443,6 +1442,7 @@ dependencies = [ "miniz_oxide", "nix", "no_std_time", + "nonzero_macros", "num_enum", "ownedref", "postcard", @@ -1463,12 +1463,21 @@ dependencies = [ "xxhash-rust", ] +[[package]] +name = "libafl_build" +version = "0.16.0" +dependencies = [ + "glob", + "which", +] + [[package]] name = "libafl_core" version = "0.16.0" dependencies = [ "backtrace", "nix", + "nonzero_macros", "postcard", "rustversion", "serde", @@ -1481,7 +1490,7 @@ version = "0.16.0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.113", ] [[package]] @@ -1529,6 +1538,7 @@ dependencies = [ "bindgen", "cc", "json", + "libafl_build", "rustc_version", "rustversion", "shell-words", @@ -1571,9 +1581,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.177" +version = "0.2.179" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" +checksum = "c5a2d376baa530d1238d133232d15e239abad80d05838b4b59354e5268af431f" [[package]] name = "libgit2-sys" @@ -1686,9 +1696,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.28" +version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" [[package]] name = "mach2" @@ -1795,6 +1805,10 @@ dependencies = [ "minimal-lexical", ] +[[package]] +name = "nonzero_macros" +version = "0.16.0" + [[package]] name = "ntapi" version = "0.4.1" @@ -1848,7 +1862,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.113", ] [[package]] @@ -2032,7 +2046,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "664ec5419c51e34154eec046ebcba56312d5a2fc3b09a06da188e1ad21afadf6" dependencies = [ "proc-macro2", - "syn 2.0.111", + "syn 2.0.113", ] [[package]] @@ -2063,14 +2077,14 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.113", ] [[package]] name = "proc-macro2" -version = "1.0.95" +version = "1.0.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" +checksum = "535d180e0ecab6268a3e718bb9fd44db66bbbc256257165fc699dadf70d16fe7" dependencies = [ "unicode-ident", ] @@ -2138,9 +2152,9 @@ dependencies = [ [[package]] name = "rangemap" -version = "1.7.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbbbbea733ec66275512d0b9694f34102e7d5406fdbe2ad8d21b28dce92887c" +checksum = "973443cf09a9c8656b574a866ab68dfa19f0867d0340648c7d2f6a71b8a8ea68" [[package]] name = "rayon-core" @@ -2264,9 +2278,9 @@ checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] name = "safe_arch" -version = "0.9.3" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "629516c85c29fe757770fa03f2074cf1eac43d44c02a3de9fc2ef7b0e207dfdd" +checksum = "1f7caad094bd561859bcd467734a720c3c1f5d1f338995351fefe2190c45efed" dependencies = [ "bytemuck", ] @@ -2303,7 +2317,7 @@ checksum = "22fc4f90c27b57691bbaf11d8ecc7cfbfe98a4da6dbe60226115d322aa80c06e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.113", ] [[package]] @@ -2395,27 +2409,27 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.113", ] [[package]] name = "serde_json" -version = "1.0.145" +version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" dependencies = [ "itoa", "memchr", - "ryu", "serde", "serde_core", + "zmij", ] [[package]] name = "serde_spanned" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e24345aa0fe688594e73770a5f6d1b216508b4f93484c0026d521acd30134392" +checksum = "f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776" dependencies = [ "serde_core", ] @@ -2454,7 +2468,7 @@ checksum = "5d69265a08751de7844521fd15003ae0a888e035773ba05695c5c759a6f89eef" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.113", ] [[package]] @@ -2470,9 +2484,9 @@ dependencies = [ [[package]] name = "shell-words" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" +checksum = "dc6fe69c597f9c37bfeeeeeb33da3530379845f10be461a66d16d03eca2ded77" [[package]] name = "shellexpand" @@ -2548,7 +2562,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.113", ] [[package]] @@ -2587,7 +2601,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.113", ] [[package]] @@ -2603,9 +2617,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.111" +version = "2.0.113" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87" +checksum = "678faa00651c9eb72dd2020cbdf275d92eccb2400d568e419efdd64838145cb4" dependencies = [ "proc-macro2", "quote", @@ -2620,7 +2634,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.113", ] [[package]] @@ -2688,7 +2702,7 @@ checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.113", ] [[package]] @@ -2745,14 +2759,14 @@ dependencies = [ [[package]] name = "toml" -version = "0.9.8" +version = "0.9.10+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dc8b1fb61449e27716ec0e1bdf0f6b8f3e8f6b05391e8497b8b6d7804ea6d8" +checksum = "0825052159284a1a8b4d6c0c86cbc801f2da5afd2b225fa548c72f2e74002f48" dependencies = [ "indexmap", "serde_core", "serde_spanned", - "toml_datetime 0.7.3", + "toml_datetime 0.7.5+spec-1.1.0", "toml_parser", "toml_writer", "winnow", @@ -2766,9 +2780,9 @@ checksum = "3da5db5a963e24bc68be8b17b6fa82814bb22ee8660f192bb182771d498f09a3" [[package]] name = "toml_datetime" -version = "0.7.3" +version = "0.7.5+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533" +checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" dependencies = [ "serde_core", ] @@ -2786,18 +2800,18 @@ dependencies = [ [[package]] name = "toml_parser" -version = "1.0.4" +version = "1.0.6+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" +checksum = "a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44" dependencies = [ "winnow", ] [[package]] name = "toml_writer" -version = "1.0.4" +version = "1.0.6+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df8b2b54733674ad286d16267dcfc7a71ed5c776e4ac7aa3c3e2561f7c637bf2" +checksum = "ab16f14aed21ee8bfd8ec22513f7287cd4a91aa92e44edfe2c17ddd004e92607" [[package]] name = "tuple_list" @@ -2846,7 +2860,7 @@ checksum = "076a02dc54dd46795c2e9c8282ed40bcfb1e22747e955de9389a1de28190fb26" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.113", ] [[package]] @@ -2931,13 +2945,13 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.18.1" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" +checksum = "e2e054861b4bd027cd373e18e8d8d8e6548085000e41290d95ce0c373a654b4a" dependencies = [ "getrandom 0.3.3", "js-sys", - "serde", + "serde_core", "wasm-bindgen", ] @@ -3048,7 +3062,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.113", "wasm-bindgen-shared", ] @@ -3070,7 +3084,7 @@ checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.113", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3097,9 +3111,9 @@ dependencies = [ [[package]] name = "wide" -version = "0.8.3" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13ca908d26e4786149c48efcf6c0ea09ab0e06d1fe3c17dc1b4b0f1ca4a7e788" +checksum = "ac11b009ebeae802ed758530b6496784ebfee7a87b9abfbcaf3bbe25b814eb25" dependencies = [ "bytemuck", "safe_arch", @@ -3215,7 +3229,7 @@ checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.113", ] [[package]] @@ -3226,7 +3240,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.113", ] [[package]] @@ -3237,7 +3251,7 @@ checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.113", ] [[package]] @@ -3248,7 +3262,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.113", ] [[package]] @@ -3520,7 +3534,7 @@ checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.113", "synstructure", ] @@ -3541,7 +3555,7 @@ checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.113", ] [[package]] @@ -3561,7 +3575,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.113", "synstructure", ] @@ -3595,5 +3609,11 @@ checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.113", ] + +[[package]] +name = "zmij" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fc5a66a20078bf1251bde995aa2fdcc4b800c70b5d92dd2c62abc5c60f679f8" diff --git a/fuzzers/binary_only/qemu_tmin/.gitignore b/fuzzers/binary_only/qemu_tmin/.gitignore index 0be9ee766c9..3e6264464aa 100644 --- a/fuzzers/binary_only/qemu_tmin/.gitignore +++ b/fuzzers/binary_only/qemu_tmin/.gitignore @@ -6,3 +6,4 @@ crashes target output corpus/ +repro diff --git a/fuzzers/binary_only/qemu_tmin/Cargo.lock b/fuzzers/binary_only/qemu_tmin/Cargo.lock index 57699c75c30..97cc7db929e 100644 --- a/fuzzers/binary_only/qemu_tmin/Cargo.lock +++ b/fuzzers/binary_only/qemu_tmin/Cargo.lock @@ -369,9 +369,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.49" +version = "1.2.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90583009037521a116abf44494efecd645ba48b6622457080f080b85544e2215" +checksum = "7a0aeaff4ff1a90589618835a598e545176939b97874f7abc7851caa0618f203" dependencies = [ "find-msvc-tools", "jobserver", @@ -478,9 +478,9 @@ dependencies = [ [[package]] name = "cmake" -version = "0.1.54" +version = "0.1.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7caa3f9de89ddbe2c607f4101924c5abec803763ae9534e4f4d7d8f84aa81f0" +checksum = "75443c44cd6b379beb8c5b45d85d0773baf31cce901fe7bb252f4eff3008ef7d" dependencies = [ "cc", ] @@ -954,9 +954,9 @@ checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "find-msvc-tools" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844" +checksum = "645cbb3a84e60b7531617d5ae4e57f7e27308f6445f5abf653209ea76dec8dff" [[package]] name = "flate2" @@ -1385,9 +1385,9 @@ checksum = "078e285eafdfb6c4b434e0d31e8cfcb5115b651496faca5749b88fafd4f23bfd" [[package]] name = "just" -version = "1.45.0" +version = "1.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c67d3b85498a212122423dbe424a8befbc5e3366405181b3e4556697dcc444ea" +checksum = "8eecd1c97e8468a505ac0c4d10db186ddaea8f05c635e73af7ae32c95f25773a" dependencies = [ "ansi_term", "blake3", @@ -1494,6 +1494,7 @@ dependencies = [ "miniz_oxide", "nix 0.30.1", "no_std_time", + "nonzero_macros", "num_enum", "ownedref", "postcard", @@ -1514,12 +1515,21 @@ dependencies = [ "xxhash-rust", ] +[[package]] +name = "libafl_build" +version = "0.16.0" +dependencies = [ + "glob", + "which", +] + [[package]] name = "libafl_core" version = "0.16.0" dependencies = [ "backtrace", "nix 0.30.1", + "nonzero_macros", "postcard", "rustversion", "serde", @@ -1580,6 +1590,7 @@ dependencies = [ "bindgen", "cc", "json", + "libafl_build", "rustc_version", "rustversion", "shell-words", @@ -1839,6 +1850,10 @@ dependencies = [ "minimal-lexical", ] +[[package]] +name = "nonzero_macros" +version = "0.16.0" + [[package]] name = "ntapi" version = "0.4.1" @@ -2152,9 +2167,9 @@ dependencies = [ [[package]] name = "rangemap" -version = "1.7.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbbbbea733ec66275512d0b9694f34102e7d5406fdbe2ad8d21b28dce92887c" +checksum = "973443cf09a9c8656b574a866ab68dfa19f0867d0340648c7d2f6a71b8a8ea68" [[package]] name = "rayon" @@ -2403,22 +2418,22 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.145" +version = "1.0.148" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" +checksum = "3084b546a1dd6289475996f182a22aba973866ea8e8b02c51d9f46b1336a22da" dependencies = [ "itoa", "memchr", - "ryu", "serde", "serde_core", + "zmij", ] [[package]] name = "serde_spanned" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e24345aa0fe688594e73770a5f6d1b216508b4f93484c0026d521acd30134392" +checksum = "f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776" dependencies = [ "serde_core", ] @@ -2595,9 +2610,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.111" +version = "2.0.113" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87" +checksum = "678faa00651c9eb72dd2020cbdf275d92eccb2400d568e419efdd64838145cb4" dependencies = [ "proc-macro2", "quote", @@ -2759,14 +2774,14 @@ dependencies = [ [[package]] name = "toml" -version = "0.9.8" +version = "0.9.10+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dc8b1fb61449e27716ec0e1bdf0f6b8f3e8f6b05391e8497b8b6d7804ea6d8" +checksum = "0825052159284a1a8b4d6c0c86cbc801f2da5afd2b225fa548c72f2e74002f48" dependencies = [ "indexmap", "serde_core", "serde_spanned", - "toml_datetime 0.7.3", + "toml_datetime 0.7.5+spec-1.1.0", "toml_parser", "toml_writer", "winnow", @@ -2780,9 +2795,9 @@ checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" [[package]] name = "toml_datetime" -version = "0.7.3" +version = "0.7.5+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533" +checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" dependencies = [ "serde_core", ] @@ -2800,18 +2815,18 @@ dependencies = [ [[package]] name = "toml_parser" -version = "1.0.4" +version = "1.0.6+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" +checksum = "a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44" dependencies = [ "winnow", ] [[package]] name = "toml_writer" -version = "1.0.4" +version = "1.0.6+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df8b2b54733674ad286d16267dcfc7a71ed5c776e4ac7aa3c3e2561f7c637bf2" +checksum = "ab16f14aed21ee8bfd8ec22513f7287cd4a91aa92e44edfe2c17ddd004e92607" [[package]] name = "tuple_list" @@ -3117,9 +3132,9 @@ dependencies = [ [[package]] name = "wide" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afd0e867c652e7c27e88620e1fbf073ad060a919235f50b64f273d9d4092931" +checksum = "ac11b009ebeae802ed758530b6496784ebfee7a87b9abfbcaf3bbe25b814eb25" dependencies = [ "bytemuck", "safe_arch", @@ -3592,3 +3607,9 @@ dependencies = [ "quote", "syn", ] + +[[package]] +name = "zmij" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30e0d8dffbae3d840f64bda38e28391faef673a7b5a6017840f2a106c8145868" diff --git a/fuzzers/binary_only/qemu_tmin/Justfile b/fuzzers/binary_only/qemu_tmin/Justfile index 197187b3ad9..9cc918acef1 100644 --- a/fuzzers/binary_only/qemu_tmin/Justfile +++ b/fuzzers/binary_only/qemu_tmin/Justfile @@ -45,13 +45,29 @@ run_multi: build harness --cores 0 \ -- {{ HARNESS }} +[unix] +repro: + {{REAL_CC}} repro.c -o repro + +[unix] +test_repro: build repro + mkdir -p corpus_repro + echo "AAAAABUG" > corpus_repro/test_case + {{ FUZZER_SINGLE }} \ + --output ./output_repro \ + --input ./corpus_repro \ + --iterations 100 \ + -- ./repro + [unix] test: ARCH=x86_64 just run_single ARCH=x86_64 just run_multi ARCH=arm just run_single ARCH=arm just run_multi + ARCH=x86_64 just test_repro [unix] clean: cargo clean + rm -rf corpus_repro output_repro repro diff --git a/fuzzers/binary_only/qemu_tmin/repro.c b/fuzzers/binary_only/qemu_tmin/repro.c new file mode 100644 index 00000000000..cb67806dcfc --- /dev/null +++ b/fuzzers/binary_only/qemu_tmin/repro.c @@ -0,0 +1,15 @@ +#include +#include +#include + +void LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { + if (Size > 3 && Data[0] == 'B' && Data[1] == 'U' && Data[2] == 'G') { + abort(); + } +} + +int main() { + uint8_t buf[4] = "test"; + LLVMFuzzerTestOneInput(buf, 4); + return 0; +} diff --git a/fuzzers/binary_only/qemu_tmin/src/tmin_multi_core.rs b/fuzzers/binary_only/qemu_tmin/src/tmin_multi_core.rs index 89f1895168e..17bf382eff2 100644 --- a/fuzzers/binary_only/qemu_tmin/src/tmin_multi_core.rs +++ b/fuzzers/binary_only/qemu_tmin/src/tmin_multi_core.rs @@ -277,7 +277,7 @@ pub fn fuzz() { Ok(QemuExitReason::Breakpoint(_)) => {} Ok(QemuExitReason::End(QemuShutdownCause::HostSignal( Signal::SigInterrupt, - ))) => process::exit(0), + ))) => process::exit(libafl_bolts::os::CTRL_C_EXIT), Err(QemuExitError::UnexpectedExit) => return ExitKind::Crash, _ => panic!("Unexpected QEMU exit."), } diff --git a/fuzzers/binary_only/qemu_tmin/src/tmin_single_core.rs b/fuzzers/binary_only/qemu_tmin/src/tmin_single_core.rs index 4b5a40eab4f..305b15a50b2 100644 --- a/fuzzers/binary_only/qemu_tmin/src/tmin_single_core.rs +++ b/fuzzers/binary_only/qemu_tmin/src/tmin_single_core.rs @@ -232,7 +232,7 @@ pub fn fuzz() -> Result<(), Error> { Ok(QemuExitReason::Breakpoint(_)) => {} Ok(QemuExitReason::End(QemuShutdownCause::HostSignal( Signal::SigInterrupt, - ))) => process::exit(0), + ))) => process::exit(libafl_bolts::os::CTRL_C_EXIT), Err(QemuExitError::UnexpectedExit) => return ExitKind::Crash, _ => panic!("Unexpected QEMU exit."), } diff --git a/fuzzers/forkserver/forkserver_libafl_cc/Justfile b/fuzzers/forkserver/forkserver_libafl_cc/Justfile index aa3c5202b5e..488f851a038 100644 --- a/fuzzers/forkserver/forkserver_libafl_cc/Justfile +++ b/fuzzers/forkserver/forkserver_libafl_cc/Justfile @@ -3,10 +3,10 @@ FORKSERVER_NAME := 'forkserver_libafl_cc' CARGO_TARGET_DIR := env("CARGO_TARGET_DIR", "target") PROFILE := env("PROFILE", "release") PROFILE_DIR := if PROFILE == "release" { "release" } else if PROFILE == "dev" { "debug" } else { "debug" } -LIBAFL_CC := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cc" -LIBAFL_CXX := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cxx" -FUZZER := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / FUZZER_NAME -FORKSERVER := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / FORKSERVER_NAME +LIBAFL_CC := CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cc" +LIBAFL_CXX := CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cxx" +FUZZER := CARGO_TARGET_DIR / PROFILE_DIR / FUZZER_NAME +FORKSERVER := CARGO_TARGET_DIR / PROFILE_DIR / FORKSERVER_NAME PROJECT_DIR := absolute_path(".") diff --git a/fuzzers/forkserver/fuzzbench_forkserver_sand/Justfile b/fuzzers/forkserver/fuzzbench_forkserver_sand/Justfile index d0f8e3c07c0..d0172f0dd30 100644 --- a/fuzzers/forkserver/fuzzbench_forkserver_sand/Justfile +++ b/fuzzers/forkserver/fuzzbench_forkserver_sand/Justfile @@ -3,10 +3,10 @@ FORKSERVER_NAME := 'fuzzbench_forkserver_sand' CARGO_TARGET_DIR := env("CARGO_TARGET_DIR", "target") PROFILE := env("PROFILE", "release") PROFILE_DIR := if PROFILE == "release" { "release" } else if PROFILE == "dev" { "debug" } else { "debug" } -LIBAFL_CC := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / "sand_cc" -LIBAFL_CXX := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / "sand_cxx" -FUZZER := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / FUZZER_NAME -FORKSERVER := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / FORKSERVER_NAME +LIBAFL_CC := CARGO_TARGET_DIR / PROFILE_DIR / "sand_cc" +LIBAFL_CXX := CARGO_TARGET_DIR / PROFILE_DIR / "sand_cxx" +FUZZER := CARGO_TARGET_DIR / PROFILE_DIR / FUZZER_NAME +FORKSERVER := CARGO_TARGET_DIR / PROFILE_DIR / FORKSERVER_NAME PROJECT_DIR := absolute_path(".") diff --git a/fuzzers/forkserver/libafl-fuzz/Justfile b/fuzzers/forkserver/libafl-fuzz/Justfile index ad5ad9f7c71..80947d542d7 100644 --- a/fuzzers/forkserver/libafl-fuzz/Justfile +++ b/fuzzers/forkserver/libafl-fuzz/Justfile @@ -3,7 +3,7 @@ CARGO_TARGET_DIR := env("CARGO_TARGET_DIR", "target") PROFILE := env("PROFILE", "release") PROFILE_DIR := if PROFILE == "release" { "release" } else if PROFILE == "dev" { "debug" } else { "debug" } FUZZER_NAME := 'libafl-fuzz' -FUZZER := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / FUZZER_NAME +FUZZER := CARGO_TARGET_DIR / PROFILE_DIR / FUZZER_NAME LLVM_CONFIG := env("LLVM_CONFIG", "llvm-config-18") AFL_VERSION := "5777ceaf23f48ae4ceae60e4f3a79263802633c6" AFL_DIR := PROJECT_DIR / "AFLplusplus" diff --git a/fuzzers/full_system/nyx_libxml2_parallel/Cargo.lock b/fuzzers/full_system/nyx_libxml2_parallel/Cargo.lock index ae6870bcf5a..c81168a975a 100644 --- a/fuzzers/full_system/nyx_libxml2_parallel/Cargo.lock +++ b/fuzzers/full_system/nyx_libxml2_parallel/Cargo.lock @@ -124,7 +124,7 @@ dependencies = [ "miniz_oxide", "object", "rustc-demangle", - "windows-link 0.2.1", + "windows-link", ] [[package]] @@ -176,7 +176,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.110", + "syn 2.0.113", ] [[package]] @@ -188,7 +188,7 @@ dependencies = [ "arbitrary-int 1.3.0", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.113", ] [[package]] @@ -244,16 +244,16 @@ dependencies = [ "quote", "serde", "serde_json", - "syn 2.0.110", + "syn 2.0.113", "tempfile", "toml", ] [[package]] name = "cc" -version = "1.2.45" +version = "1.2.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35900b6c8d709fb1d854671ae27aeaa9eec2f8b01b364e1619a40da3e6fe2afe" +checksum = "7a0aeaff4ff1a90589618835a598e545176939b97874f7abc7851caa0618f203" dependencies = [ "find-msvc-tools", "jobserver", @@ -295,9 +295,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.51" +version = "4.5.54" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c26d721170e0295f191a69bd9a1f93efcdb0aff38684b61ab5750468972e5f5" +checksum = "c6e6ff9dcd79cff5cd969a17a545d79e84ab086e444102a591e288a8aa3ce394" dependencies = [ "clap_builder", "clap_derive", @@ -305,9 +305,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.51" +version = "4.5.54" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75835f0c7bf681bfd05abe44e965760fea999a5286c6eb2d59883634fd02011a" +checksum = "fa42cf4d2b7a41bc8f663a7cab4031ebafa1bf3875705bfaf8466dc60ab52c00" dependencies = [ "anstream", "anstyle", @@ -325,7 +325,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.113", ] [[package]] @@ -407,9 +407,9 @@ dependencies = [ [[package]] name = "ctor" -version = "0.4.3" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec09e802f5081de6157da9a75701d6c713d8dc3ba52571fd4bd25f412644e8a6" +checksum = "424e0138278faeb2b401f174ad17e715c829512d74f3d1e81eb43365c2e0590e" dependencies = [ "ctor-proc-macro", "dtor", @@ -417,9 +417,9 @@ dependencies = [ [[package]] name = "ctor-proc-macro" -version = "0.0.6" +version = "0.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2931af7e13dc045d8e9d26afccc6fa115d64e115c9c84b1166288b46f6782c2" +checksum = "52560adf09603e58c9a7ee1fe1dcb95a16927b17c127f0ac02d6e768a0e25bc1" [[package]] name = "derivative" @@ -446,18 +446,18 @@ checksum = "780955b8b195a21ab8e4ac6b60dd1dbdcec1dc6c51c0617964b08c81785e12c9" [[package]] name = "dtor" -version = "0.0.6" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97cbdf2ad6846025e8e25df05171abfb30e3ababa12ee0a0e44b9bbe570633a8" +checksum = "404d02eeb088a82cfd873006cb713fe411306c7d182c344905e101fb1167d301" dependencies = [ "dtor-proc-macro", ] [[package]] name = "dtor-proc-macro" -version = "0.0.5" +version = "0.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7454e41ff9012c00d53cf7f475c5e3afa3b91b7c90568495495e8d9bf47a1055" +checksum = "f678cf4a922c215c63e0de95eb1ff08a958a81d47e485cf9da1e27bf6305cfa5" [[package]] name = "either" @@ -552,9 +552,9 @@ checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "find-msvc-tools" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127" +checksum = "645cbb3a84e60b7531617d5ae4e57f7e27308f6445f5abf653209ea76dec8dff" [[package]] name = "foldhash" @@ -619,14 +619,15 @@ checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" [[package]] name = "hashbrown" -version = "0.16.0" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" dependencies = [ "allocator-api2", "equivalent", "foldhash", "serde", + "serde_core", ] [[package]] @@ -643,13 +644,13 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hostname" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56f203cd1c76362b69e3863fd987520ac36cf70a8c92627449b2f64a8cf7d65" +checksum = "617aaa3557aef3810a6369d0a99fac8a080891b68bd9f9812a1eeda0c0730cbd" dependencies = [ "cfg-if", "libc", - "windows-link 0.1.3", + "windows-link", ] [[package]] @@ -768,11 +769,12 @@ dependencies = [ "libc", "ll_mp", "log", - "mach2 0.5.0", + "mach2", "minibsod", "miniz_oxide", "nix 0.30.1", "no_std_time", + "nonzero_macros", "num_enum", "ownedref", "postcard", @@ -793,12 +795,21 @@ dependencies = [ "xxhash-rust", ] +[[package]] +name = "libafl_build" +version = "0.16.0" +dependencies = [ + "glob", + "which", +] + [[package]] name = "libafl_cc" version = "0.16.0" dependencies = [ "cc", "glob", + "libafl_build", "serde", "which", ] @@ -809,6 +820,7 @@ version = "0.16.0" dependencies = [ "backtrace", "nix 0.30.1", + "nonzero_macros", "postcard", "rustversion", "serde", @@ -821,7 +833,7 @@ version = "0.16.0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.113", ] [[package]] @@ -861,9 +873,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.177" +version = "0.2.179" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" +checksum = "c5a2d376baa530d1238d133232d15e239abad80d05838b4b59354e5268af431f" [[package]] name = "libloading" @@ -872,7 +884,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" dependencies = [ "cfg-if", - "windows-link 0.2.1", + "windows-link", ] [[package]] @@ -965,27 +977,15 @@ dependencies = [ [[package]] name = "log" -version = "0.4.28" +version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" [[package]] name = "mach2" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d640282b302c0bb0a2a8e0233ead9035e3bed871f0b7e81fe4a1ec829765db44" -dependencies = [ - "libc", -] - -[[package]] -name = "mach2" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a1b95cd5421ec55b445b5ae102f5ea0e768de1f82bd3001e11f426c269c3aea" -dependencies = [ - "libc", -] +checksum = "dae608c151f68243f2b000364e1f7b186d9c29845f7d2d85bd31b9ad77ad552b" [[package]] name = "memchr" @@ -1027,7 +1027,7 @@ version = "0.16.0" dependencies = [ "exceptional", "libc", - "mach2 0.4.3", + "mach2", "rustversion", "windows", ] @@ -1090,6 +1090,10 @@ dependencies = [ "minimal-lexical", ] +[[package]] +name = "nonzero_macros" +version = "0.16.0" + [[package]] name = "num-traits" version = "0.2.19" @@ -1117,7 +1121,7 @@ checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.113", ] [[package]] @@ -1181,7 +1185,7 @@ dependencies = [ "libc", "redox_syscall", "smallvec", - "windows-link 0.2.1", + "windows-link", ] [[package]] @@ -1218,7 +1222,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.110", + "syn 2.0.113", ] [[package]] @@ -1229,9 +1233,9 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" -version = "1.0.103" +version = "1.0.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" +checksum = "535d180e0ecab6268a3e718bb9fd44db66bbbc256257165fc699dadf70d16fe7" dependencies = [ "unicode-ident", ] @@ -1306,9 +1310,9 @@ dependencies = [ [[package]] name = "rangemap" -version = "1.6.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93e7e49bb0bf967717f7bd674458b3d6b0c5f48ec7e3038166026a69fc22223" +checksum = "973443cf09a9c8656b574a866ab68dfa19f0867d0340648c7d2f6a71b8a8ea68" [[package]] name = "redox_syscall" @@ -1399,17 +1403,11 @@ version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" -[[package]] -name = "ryu" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" - [[package]] name = "safe_arch" -version = "0.9.2" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fb5032219cc30e5bb98749b19a18ceb2cf15e24ba8d517a7e64dff4f1f1eca5" +checksum = "1f7caad094bd561859bcd467734a720c3c1f5d1f338995351fefe2190c45efed" dependencies = [ "bytemuck", ] @@ -1492,20 +1490,20 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.113", ] [[package]] name = "serde_json" -version = "1.0.145" +version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" dependencies = [ "itoa", "memchr", - "ryu", "serde", "serde_core", + "zmij", ] [[package]] @@ -1538,7 +1536,7 @@ checksum = "5d69265a08751de7844521fd15003ae0a888e035773ba05695c5c759a6f89eef" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.113", ] [[package]] @@ -1707,9 +1705,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.110" +version = "2.0.113" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a99801b5bd34ede4cf3fc688c5919368fea4e4814a4664359503e6015b280aea" +checksum = "678faa00651c9eb72dd2020cbdf275d92eccb2400d568e419efdd64838145cb4" dependencies = [ "proc-macro2", "quote", @@ -1756,7 +1754,7 @@ checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.113", ] [[package]] @@ -1867,22 +1865,22 @@ dependencies = [ [[package]] name = "typed-builder" -version = "0.22.0" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "398a3a3c918c96de527dc11e6e846cd549d4508030b8a33e1da12789c856b81a" +checksum = "31aa81521b70f94402501d848ccc0ecaa8f93c8eb6999eb9747e72287757ffda" dependencies = [ "typed-builder-macro", ] [[package]] name = "typed-builder-macro" -version = "0.22.0" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e48cea23f68d1f78eb7bc092881b6bb88d3d6b5b7e6234f6f9c911da1ffb221" +checksum = "076a02dc54dd46795c2e9c8282ed40bcfb1e22747e955de9389a1de28190fb26" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.113", ] [[package]] @@ -1932,13 +1930,13 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.18.1" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" +checksum = "e2e054861b4bd027cd373e18e8d8d8e6548085000e41290d95ce0c373a654b4a" dependencies = [ "getrandom 0.3.4", "js-sys", - "serde", + "serde_core", "wasm-bindgen", ] @@ -2010,7 +2008,7 @@ dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.113", "wasm-bindgen-shared", ] @@ -2036,9 +2034,9 @@ dependencies = [ [[package]] name = "wide" -version = "0.8.2" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7966aa4bc1b7ead85802bd41dc4f35e2ef69bc23b6d3c73d3d5df5e643384012" +checksum = "ac11b009ebeae802ed758530b6496784ebfee7a87b9abfbcaf3bbe25b814eb25" dependencies = [ "bytemuck", "safe_arch", @@ -2095,7 +2093,7 @@ checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" dependencies = [ "windows-implement", "windows-interface", - "windows-link 0.2.1", + "windows-link", "windows-result", "windows-strings", ] @@ -2107,7 +2105,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb" dependencies = [ "windows-core", - "windows-link 0.2.1", + "windows-link", "windows-threading", ] @@ -2119,7 +2117,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.113", ] [[package]] @@ -2130,15 +2128,9 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.113", ] -[[package]] -name = "windows-link" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" - [[package]] name = "windows-link" version = "0.2.1" @@ -2152,7 +2144,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e2e40844ac143cdb44aead537bbf727de9b044e107a0f1220392177d15b0f26" dependencies = [ "windows-core", - "windows-link 0.2.1", + "windows-link", ] [[package]] @@ -2161,7 +2153,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" dependencies = [ - "windows-link 0.2.1", + "windows-link", ] [[package]] @@ -2170,7 +2162,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" dependencies = [ - "windows-link 0.2.1", + "windows-link", ] [[package]] @@ -2197,7 +2189,7 @@ version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" dependencies = [ - "windows-link 0.2.1", + "windows-link", ] [[package]] @@ -2222,7 +2214,7 @@ version = "0.53.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" dependencies = [ - "windows-link 0.2.1", + "windows-link", "windows_aarch64_gnullvm 0.53.1", "windows_aarch64_msvc 0.53.1", "windows_i686_gnu 0.53.1", @@ -2239,7 +2231,7 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3949bd5b99cafdf1c7ca86b43ca564028dfe27d66958f2470940f73d86d75b37" dependencies = [ - "windows-link 0.2.1", + "windows-link", ] [[package]] @@ -2382,5 +2374,11 @@ checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.113", ] + +[[package]] +name = "zmij" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fc5a66a20078bf1251bde995aa2fdcc4b800c70b5d92dd2c62abc5c60f679f8" diff --git a/fuzzers/full_system/nyx_libxml2_parallel/setup_libxml2.sh b/fuzzers/full_system/nyx_libxml2_parallel/setup_libxml2.sh deleted file mode 100755 index 880eb94f7e0..00000000000 --- a/fuzzers/full_system/nyx_libxml2_parallel/setup_libxml2.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash -# cargo build --release -# PWD=$(pwd) -# export CC="$PWD/target/release/libafl_cc" -# export CXX="$PWD/target/release/libafl_cxx" - -# Check if afl-clang-fast exists in PATH -if ! command -v afl-clang-fast &> /dev/null -then - echo "afl-clang-fast not found. Cloning and compiling AFLplusplus..." - git clone https://github.com/AFLplusplus/AFLplusplus.git - pushd AFLplusplus - make - popd - export CC="$(pwd)/AFLplusplus/afl-clang-fast" - export CXX="$(pwd)/AFLplusplus/afl-clang-fast++" -else - echo "afl-clang-fast already exists in PATH." - export CC="afl-clang-fast" - export CXX="afl-clang-fast++" -fi - -curl -C - https://gitlab.gnome.org/GNOME/libxml2/-/archive/v2.9.14/libxml2-v2.9.14.tar.gz --output libxml2-v2.9.14.tar.gz -tar -xf ./libxml2-v2.9.14.tar.gz --transform s/libxml2-v2.9.14/libxml2/ || exit -cd ./libxml2/ || exit -./autogen.sh --enable-shared=no || exit -make -j || exit -cd - || exit -python3 "./target/debug/packer/packer/nyx_packer.py" \ - ./libxml2/xmllint \ - /tmp/nyx_libxml2 \ - afl \ - instrumentation \ - -args "/tmp/input" \ - -file "/tmp/input" \ - --fast_reload_mode \ - --purge || exit - -python3 ./target/debug/packer/packer/nyx_config_gen.py /tmp/nyx_libxml2/ Kernel || exit diff --git a/fuzzers/full_system/nyx_libxml2_parallel/setup_libxml2.sh b/fuzzers/full_system/nyx_libxml2_parallel/setup_libxml2.sh new file mode 120000 index 00000000000..23741dd4de6 --- /dev/null +++ b/fuzzers/full_system/nyx_libxml2_parallel/setup_libxml2.sh @@ -0,0 +1 @@ +../nyx_libxml2_standalone/setup_libxml2.sh \ No newline at end of file diff --git a/fuzzers/full_system/nyx_libxml2_standalone/Cargo.lock b/fuzzers/full_system/nyx_libxml2_standalone/Cargo.lock index 6ecafef3d52..779a9fe52c0 100644 --- a/fuzzers/full_system/nyx_libxml2_standalone/Cargo.lock +++ b/fuzzers/full_system/nyx_libxml2_standalone/Cargo.lock @@ -100,6 +100,12 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "825297538d77367557b912770ca3083f778a196054b3ee63b22673c4a3cae0a5" +[[package]] +name = "arbitrary-int" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c858caffa49edfc4ecc45a4bec37abd3e88041a2903816f10f990b7b41abc281" + [[package]] name = "autocfg" version = "1.4.0" @@ -135,23 +141,34 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "bincode" -version = "1.3.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +checksum = "36eaf5d7b090263e8150820482d5d93cd964a81e4019913c972f4edcc6edb740" dependencies = [ + "bincode_derive", "serde", + "unty", +] + +[[package]] +name = "bincode_derive" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf95709a440f45e986983918d0e8a1f30a9b1df04918fc828670606804ac3c09" +dependencies = [ + "virtue", ] [[package]] name = "bindgen" -version = "0.71.1" +version = "0.72.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f58bf3d7db68cfbac37cfc485a8d711e87e064c3d0fe0435b92f7a407f9d6b3" +checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.10.0", "cexpr", "clang-sys", - "itertools", + "itertools 0.13.0", "log", "prettyplease", "proc-macro2", @@ -159,19 +176,19 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.101", + "syn 2.0.113", ] [[package]] name = "bitbybit" -version = "1.3.2" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb157f9753a7cddfcf4a4f5fed928fbf4ce1b7b64b6bcc121d7a9f95d698997b" +checksum = "ec187a89ab07e209270175faf9e07ceb2755d984954e58a2296e325ddece2762" dependencies = [ - "arbitrary-int", + "arbitrary-int 1.3.0", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.113", ] [[package]] @@ -182,9 +199,18 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.1" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" +checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" + +[[package]] +name = "build_id2" +version = "0.16.0" +dependencies = [ + "ahash", + "rustversion", + "uuid", +] [[package]] name = "bumpalo" @@ -194,21 +220,15 @@ checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" [[package]] name = "bytemuck" -version = "1.23.0" +version = "1.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9134a6ef01ce4b366b50689c94f82c14bc72bc5d0386829828a2e2752ef7958c" +checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" [[package]] name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "cassowary" -version = "0.3.0" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53" +checksum = "0fc10e8cc6b2580fda3f36eb6dc5316657f812a3df879a44a66fc9f0fdbc4855" [[package]] name = "castaway" @@ -233,17 +253,18 @@ dependencies = [ "quote", "serde", "serde_json", - "syn 2.0.101", + "syn 2.0.113", "tempfile", "toml", ] [[package]] name = "cc" -version = "1.2.24" +version = "1.2.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16595d3be041c03b09d08d0858631facccee9221e579704070e6e9e4915d3bc7" +checksum = "7a0aeaff4ff1a90589618835a598e545176939b97874f7abc7851caa0618f203" dependencies = [ + "find-msvc-tools", "jobserver", "libc", "shlex", @@ -260,9 +281,9 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.0" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "cfg_aliases" @@ -283,9 +304,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.38" +version = "4.5.54" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed93b9805f8ba930df42c2590f05453d5ec36cbb85d018868a5b24d31f6ac000" +checksum = "c6e6ff9dcd79cff5cd969a17a545d79e84ab086e444102a591e288a8aa3ce394" dependencies = [ "clap_builder", "clap_derive", @@ -293,9 +314,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.38" +version = "4.5.54" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "379026ff283facf611b0ea629334361c4211d1b12ee01024eec1591133b04120" +checksum = "fa42cf4d2b7a41bc8f663a7cab4031ebafa1bf3875705bfaf8466dc60ab52c00" dependencies = [ "anstream", "anstyle", @@ -306,14 +327,14 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.32" +version = "4.5.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7" +checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.113", ] [[package]] @@ -324,9 +345,12 @@ checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" [[package]] name = "cobs" -version = "0.2.3" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15" +checksum = "0fa961b519f0b462e3a3b4a34b64d119eeaca1d59af726fe450bbba07a9fc0a1" +dependencies = [ + "thiserror", +] [[package]] name = "colorchoice" @@ -346,9 +370,9 @@ dependencies = [ [[package]] name = "compact_str" -version = "0.8.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b79c4069c6cad78e2e0cdfcbd26275770669fb39fd308a752dc110e83b9af32" +checksum = "3fdb1325a1cece981e8a296ab8f0f9b63ae357bd0784a9faaf548cc7b480707a" dependencies = [ "castaway", "cfg-if", @@ -358,17 +382,6 @@ dependencies = [ "static_assertions", ] -[[package]] -name = "config" -version = "0.1.0" -source = "git+https://github.com/nyx-fuzz/libnyx.git?rev=f07a41fcf0a01be5f8b8397b26cb914a149b9198#f07a41fcf0a01be5f8b8397b26cb914a149b9198" -dependencies = [ - "libc", - "ron", - "serde", - "serde_derive", -] - [[package]] name = "const_fn" version = "0.4.11" @@ -411,19 +424,14 @@ dependencies = [ ] [[package]] -name = "crossterm" -version = "0.28.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6" +name = "core_affinity2" +version = "0.16.0" dependencies = [ - "bitflags 2.9.1", - "crossterm_winapi", - "mio", - "parking_lot", - "rustix 0.38.44", - "signal-hook", - "signal-hook-mio", - "winapi", + "libafl_core", + "libc", + "rustversion", + "serde", + "windows", ] [[package]] @@ -432,13 +440,13 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.10.0", "crossterm_winapi", "derive_more", "document-features", "mio", "parking_lot", - "rustix 1.0.7", + "rustix", "signal-hook", "signal-hook-mio", "winapi", @@ -455,9 +463,9 @@ dependencies = [ [[package]] name = "ctor" -version = "0.4.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4735f265ba6a1188052ca32d461028a7d1125868be18e287e756019da7607b5" +checksum = "424e0138278faeb2b401f174ad17e715c829512d74f3d1e81eb43365c2e0590e" dependencies = [ "ctor-proc-macro", "dtor", @@ -465,9 +473,9 @@ dependencies = [ [[package]] name = "ctor-proc-macro" -version = "0.0.5" +version = "0.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f211af61d8efdd104f96e57adf5e426ba1bc3ed7a4ead616e15e5881fd79c4d" +checksum = "52560adf09603e58c9a7ee1fe1dcb95a16927b17c127f0ac02d6e768a0e25bc1" [[package]] name = "darling" @@ -490,7 +498,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.101", + "syn 2.0.113", ] [[package]] @@ -501,7 +509,16 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core", "quote", - "syn 2.0.101", + "syn 2.0.113", +] + +[[package]] +name = "deranged" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" +dependencies = [ + "powerfmt", ] [[package]] @@ -533,7 +550,7 @@ dependencies = [ "convert_case", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.113", ] [[package]] @@ -559,18 +576,18 @@ dependencies = [ [[package]] name = "dtor" -version = "0.0.6" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97cbdf2ad6846025e8e25df05171abfb30e3ababa12ee0a0e44b9bbe570633a8" +checksum = "404d02eeb088a82cfd873006cb713fe411306c7d182c344905e101fb1167d301" dependencies = [ "dtor-proc-macro", ] [[package]] name = "dtor-proc-macro" -version = "0.0.5" +version = "0.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7454e41ff9012c00d53cf7f475c5e3afa3b91b7c90568495495e8d9bf47a1055" +checksum = "f678cf4a922c215c63e0de95eb1ff08a958a81d47e485cf9da1e27bf6305cfa5" [[package]] name = "either" @@ -622,15 +639,38 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "exceptional" +version = "0.16.0" +dependencies = [ + "libafl_core", + "libc", + "log", + "nix 0.30.1", + "num_enum", + "rustversion", + "windows", + "windows-core", +] + +[[package]] +name = "fast_rands" +version = "0.16.0" +dependencies = [ + "rand_core 0.9.3", + "rustversion", + "serde", +] + [[package]] name = "fastbloom" -version = "0.9.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27cea6e7f512d43b098939ff4d5a5d6fe3db07971e1d05176fe26c642d33f5b8" +checksum = "18c1ddb9231d8554c2d6bdf4cfaabf0c59251658c68b6c95cd52dd0c513a912a" dependencies = [ "getrandom 0.3.3", + "libm", "siphasher", - "wide 0.7.32 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -639,6 +679,12 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" +[[package]] +name = "find-msvc-tools" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645cbb3a84e60b7531617d5ae4e57f7e27308f6445f5abf653209ea76dec8dff" + [[package]] name = "fnv" version = "1.0.7" @@ -647,9 +693,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "foldhash" -version = "0.1.5" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" [[package]] name = "fs2" @@ -671,29 +717,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "fuzz_runner" -version = "0.1.0" -source = "git+https://github.com/nyx-fuzz/libnyx.git?rev=f07a41fcf0a01be5f8b8397b26cb914a149b9198#f07a41fcf0a01be5f8b8397b26cb914a149b9198" -dependencies = [ - "byteorder", - "colored", - "config", - "derivative", - "fs4", - "glob", - "libc", - "nix 0.26.4", - "quick-error", - "rand", - "serde", - "serde_derive", - "snafu", - "subprocess", - "time", - "timeout-readwrite", -] - [[package]] name = "getrandom" version = "0.1.16" @@ -725,30 +748,27 @@ checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] name = "glob" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" +checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" [[package]] name = "hashbrown" -version = "0.14.5" +version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -dependencies = [ - "ahash", - "allocator-api2", - "serde", -] +checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3" [[package]] name = "hashbrown" -version = "0.15.3" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" dependencies = [ "allocator-api2", "equivalent", "foldhash", + "serde", + "serde_core", ] [[package]] @@ -765,9 +785,9 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hostname" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56f203cd1c76362b69e3863fd987520ac36cf70a8c92627449b2f64a8cf7d65" +checksum = "617aaa3557aef3810a6369d0a99fac8a080891b68bd9f9812a1eeda0c0730cbd" dependencies = [ "cfg-if", "libc", @@ -806,7 +826,7 @@ dependencies = [ "indoc", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.113", ] [[package]] @@ -824,6 +844,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.15" @@ -850,6 +879,17 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "kasuari" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fe90c1150662e858c7d5f945089b7517b0a80d8bf7ba4b1b5ffc984e7230a5b" +dependencies = [ + "hashbrown 0.16.1", + "portable-atomic", + "thiserror", +] + [[package]] name = "lazy_static" version = "1.5.0" @@ -858,26 +898,29 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libafl" -version = "0.15.2" +version = "0.16.0" dependencies = [ "ahash", - "arbitrary-int", + "arbitrary-int 2.0.0", "backtrace", "bincode", "bitbybit", "const_format", "const_panic", - "crossterm 0.29.0", + "crossterm", "fastbloom", "fs2", - "hashbrown 0.14.5", + "hashbrown 0.16.1", "libafl_bolts", + "libafl_core", "libafl_derive", "libc", "libm", + "ll_mp", "log", "meminterval", - "nix 0.29.0", + "nix 0.30.1", + "no_std_time", "num-traits", "postcard", "ratatui", @@ -887,6 +930,7 @@ dependencies = [ "serde_json", "serial_test", "tuple_list", + "tuple_list_ex", "typed-builder", "uuid", "wait-timeout", @@ -896,68 +940,99 @@ dependencies = [ [[package]] name = "libafl_bolts" -version = "0.15.2" +version = "0.16.0" dependencies = [ "ahash", "backtrace", + "build_id2", "clap", - "ctor", + "core_affinity2", "erased-serde", - "hashbrown 0.14.5", + "exceptional", + "fast_rands", + "hashbrown 0.16.1", "hostname", + "libafl_core", "libafl_derive", "libc", + "ll_mp", "log", "mach2", + "minibsod", "miniz_oxide", - "nix 0.29.0", + "nix 0.30.1", + "no_std_time", + "nonzero_macros", "num_enum", - "once_cell", + "ownedref", "postcard", - "rand_core 0.9.3", "rustversion", "serde", + "serde_anymap", "serial_test", + "shmem_providers", "static_assertions", "tuple_list", + "tuple_list_ex", "typeid", "uds", - "uuid", - "wide 0.7.32 (git+https://github.com/Lokathor/wide?rev=71b5df0b2620da753836fafce5f99076181a49fe)", + "wide", "winapi", "windows", "windows-result", "xxhash-rust", ] +[[package]] +name = "libafl_build" +version = "0.16.0" +dependencies = [ + "glob", + "which", +] + [[package]] name = "libafl_cc" -version = "0.15.2" +version = "0.16.0" dependencies = [ "cc", "glob", + "libafl_build", "serde", "which", ] +[[package]] +name = "libafl_core" +version = "0.16.0" +dependencies = [ + "backtrace", + "nix 0.30.1", + "nonzero_macros", + "postcard", + "rustversion", + "serde", + "windows-result", +] + [[package]] name = "libafl_derive" -version = "0.15.2" +version = "0.16.0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.113", ] [[package]] name = "libafl_nyx" -version = "0.15.2" +version = "0.16.0" dependencies = [ "libafl", "libafl_bolts", "libafl_targets", "libnyx", - "nix 0.29.0", + "nix 0.30.1", "regex", "serde", "typed-builder", @@ -965,27 +1040,30 @@ dependencies = [ [[package]] name = "libafl_targets" -version = "0.15.2" +version = "0.16.0" dependencies = [ "bindgen", "cc", - "hashbrown 0.14.5", + "fast_rands", + "hashbrown 0.16.1", "libafl", "libafl_bolts", + "libafl_core", "libc", "log", - "nix 0.29.0", - "once_cell", + "nix 0.30.1", + "ownedref", "rangemap", "rustversion", "serde", + "shmem_providers", ] [[package]] name = "libc" -version = "0.2.172" +version = "0.2.179" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" +checksum = "c5a2d376baa530d1238d133232d15e239abad80d05838b4b59354e5268af431f" [[package]] name = "libloading" @@ -1005,20 +1083,60 @@ checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" [[package]] name = "libnyx" -version = "0.1.0" -source = "git+https://github.com/nyx-fuzz/libnyx.git?rev=f07a41fcf0a01be5f8b8397b26cb914a149b9198#f07a41fcf0a01be5f8b8397b26cb914a149b9198" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d34256f134550fb15f6967b105a77b0d3d99d2f665ff67249b4ee72e1beb2a7" dependencies = [ "cbindgen", - "config", - "fuzz_runner", "libc", + "libnyx_config", + "libnyx_fuzz_runner", ] [[package]] -name = "linux-raw-sys" -version = "0.4.15" +name = "libnyx_config" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" +checksum = "816b7a1f5e45a2a437305cb7d1b4f0760ef38ab3016367ca4bcdd25bab0d3f7a" +dependencies = [ + "libc", + "ron", + "serde", + "serde_derive", +] + +[[package]] +name = "libnyx_fuzz_runner" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e982711034d47e339d505f3e3b6e14776d0ae8510b8ac159e767156105dfc7b3" +dependencies = [ + "byteorder", + "colored", + "derivative", + "fs4", + "glob", + "libc", + "libnyx_config", + "nix 0.26.4", + "quick-error", + "rand", + "serde", + "serde_derive", + "snafu", + "subprocess", + "time 0.2.27", + "timeout-readwrite", +] + +[[package]] +name = "line-clipping" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f4de44e98ddbf09375cbf4d17714d18f39195f4f4894e8524501726fd9a8a4a" +dependencies = [ + "bitflags 2.10.0", +] [[package]] name = "linux-raw-sys" @@ -1032,6 +1150,25 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5" +[[package]] +name = "ll_mp" +version = "0.16.0" +dependencies = [ + "exceptional", + "hostname", + "libafl_core", + "log", + "miniz_oxide", + "nix 0.30.1", + "no_std_time", + "postcard", + "rustversion", + "serde", + "serial_test", + "shmem_providers", + "tuple_list", +] + [[package]] name = "lock_api" version = "0.4.12" @@ -1044,27 +1181,24 @@ dependencies = [ [[package]] name = "log" -version = "0.4.27" +version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" [[package]] name = "lru" -version = "0.12.5" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" +checksum = "96051b46fc183dc9cd4a223960ef37b9af631b55191852a8274bfef064cda20f" dependencies = [ - "hashbrown 0.15.3", + "hashbrown 0.16.1", ] [[package]] name = "mach2" -version = "0.4.2" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709" -dependencies = [ - "libc", -] +checksum = "dae608c151f68243f2b000364e1f7b186d9c29845f7d2d85bd31b9ad77ad552b" [[package]] name = "memchr" @@ -1074,9 +1208,9 @@ checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "meminterval" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6f8614cf855d251be1c2138d330c04f134923fddec0dcfc8b6f58ac499bf248" +checksum = "8e0f9a537564310a87dc77d5c88a407e27dd0aa740e070f0549439cfcc68fcfd" dependencies = [ "num-traits", "serde", @@ -1100,6 +1234,17 @@ dependencies = [ "autocfg", ] +[[package]] +name = "minibsod" +version = "0.16.0" +dependencies = [ + "exceptional", + "libc", + "mach2", + "rustversion", + "windows", +] + [[package]] name = "minimal-lexical" version = "0.2.1" @@ -1142,17 +1287,24 @@ dependencies = [ [[package]] name = "nix" -version = "0.29.0" +version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" +checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.10.0", "cfg-if", "cfg_aliases", "libc", "memoffset 0.9.1", ] +[[package]] +name = "no_std_time" +version = "0.16.0" +dependencies = [ + "rustversion", +] + [[package]] name = "nom" version = "7.1.3" @@ -1163,6 +1315,16 @@ dependencies = [ "minimal-lexical", ] +[[package]] +name = "nonzero_macros" +version = "0.16.0" + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + [[package]] name = "num-traits" version = "0.2.19" @@ -1174,27 +1336,37 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.7.3" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" +checksum = "b1207a7e20ad57b847bbddc6776b968420d38292bbfe2089accff5e19e82454c" dependencies = [ "num_enum_derive", + "rustversion", ] [[package]] name = "num_enum_derive" -version = "0.7.3" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" +checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.113", +] + +[[package]] +name = "num_threads" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" +dependencies = [ + "libc", ] [[package]] name = "nyx_libxml2_standalone" -version = "0.15.2" +version = "0.16.0" dependencies = [ "libafl", "libafl_bolts", @@ -1224,6 +1396,15 @@ version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" +[[package]] +name = "ownedref" +version = "0.16.0" +dependencies = [ + "libafl_core", + "rustversion", + "serde", +] + [[package]] name = "parking_lot" version = "0.12.3" @@ -1247,23 +1428,23 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - [[package]] name = "pin-utils" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "portable-atomic" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f89776e4d69bb58bc6993e99ffa1d11f228b839984854c7daeb5d37f87cbe950" + [[package]] name = "postcard" -version = "1.1.1" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "170a2601f67cc9dba8edd8c4870b15f71a6a2dc196daec8c83f72b59dff628a8" +checksum = "6764c3b5dd454e283a30e6dfe78e9b31096d9e32036b5d1eaac7a6119ccb9a24" dependencies = [ "cobs", "embedded-io 0.4.0", @@ -1271,6 +1452,12 @@ dependencies = [ "serde", ] +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + [[package]] name = "ppv-lite86" version = "0.2.21" @@ -1287,7 +1474,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "664ec5419c51e34154eec046ebcba56312d5a2fc3b09a06da188e1ad21afadf6" dependencies = [ "proc-macro2", - "syn 2.0.101", + "syn 2.0.113", ] [[package]] @@ -1298,18 +1485,18 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" -version = "1.0.95" +version = "1.0.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" +checksum = "535d180e0ecab6268a3e718bb9fd44db66bbbc256257165fc699dadf70d16fe7" dependencies = [ "unicode-ident", ] [[package]] name = "quick-error" -version = "2.0.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" +checksum = "7ac990ab4e038dd8481a5e3fd00641067fcfc674ad663f3222752ed5284e05d4" [[package]] name = "quote" @@ -1375,29 +1562,71 @@ dependencies = [ [[package]] name = "rangemap" -version = "1.5.1" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f60fcc7d6849342eff22c4350c8b9a989ee8ceabc4b481253e8946b9fe83d684" +checksum = "973443cf09a9c8656b574a866ab68dfa19f0867d0340648c7d2f6a71b8a8ea68" [[package]] name = "ratatui" -version = "0.29.0" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1ce67fb8ba4446454d1c8dbaeda0557ff5e94d39d5e5ed7f10a65eb4c8266bc" +dependencies = [ + "instability", + "ratatui-core", + "ratatui-crossterm", + "ratatui-widgets", +] + +[[package]] +name = "ratatui-core" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eabd94c2f37801c20583fc49dd5cd6b0ba68c716787c2dd6ed18571e1e63117b" +checksum = "5ef8dea09a92caaf73bff7adb70b76162e5937524058a7e5bff37869cbbec293" dependencies = [ - "bitflags 2.9.1", - "cassowary", + "bitflags 2.10.0", "compact_str", - "crossterm 0.28.1", + "hashbrown 0.16.1", "indoc", - "instability", - "itertools", + "itertools 0.14.0", + "kasuari", "lru", - "paste", "strum", + "thiserror", "unicode-segmentation", "unicode-truncate", - "unicode-width 0.2.0", + "unicode-width", +] + +[[package]] +name = "ratatui-crossterm" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "577c9b9f652b4c121fb25c6a391dd06406d3b092ba68827e6d2f09550edc54b3" +dependencies = [ + "cfg-if", + "crossterm", + "instability", + "ratatui-core", +] + +[[package]] +name = "ratatui-widgets" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7dbfa023cd4e604c2553483820c5fe8aa9d71a42eea5aa77c6e7f35756612db" +dependencies = [ + "bitflags 2.10.0", + "hashbrown 0.16.1", + "indoc", + "instability", + "itertools 0.14.0", + "line-clipping", + "ratatui-core", + "strum", + "time 0.3.44", + "unicode-segmentation", + "unicode-width", ] [[package]] @@ -1406,14 +1635,14 @@ version = "0.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.10.0", ] [[package]] name = "regex" -version = "1.11.1" +version = "1.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" dependencies = [ "aho-corasick", "memchr", @@ -1423,9 +1652,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.9" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" dependencies = [ "aho-corasick", "memchr", @@ -1470,37 +1699,24 @@ dependencies = [ "semver", ] -[[package]] -name = "rustix" -version = "0.38.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" -dependencies = [ - "bitflags 2.9.1", - "errno", - "libc", - "linux-raw-sys 0.4.15", - "windows-sys 0.59.0", -] - [[package]] name = "rustix" version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.10.0", "errno", "libc", - "linux-raw-sys 0.9.4", + "linux-raw-sys", "windows-sys 0.59.0", ] [[package]] name = "rustversion" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "ryu" @@ -1510,9 +1726,9 @@ checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] name = "safe_arch" -version = "0.7.4" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b02de82ddbe1b636e6170c21be622223aea188ef2e139be0a5b219ec215323" +checksum = "1f7caad094bd561859bcd467734a720c3c1f5d1f338995351fefe2190c45efed" dependencies = [ "bytemuck", ] @@ -1555,34 +1771,60 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.219" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_anymap" +version = "0.16.0" +dependencies = [ + "ahash", + "ctor", + "erased-serde", + "hashbrown 0.16.1", + "libafl_core", + "postcard", + "rustversion", + "serde", + "static_assertions", +] + +[[package]] +name = "serde_core" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.219" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.113", ] [[package]] name = "serde_json" -version = "1.0.140" +version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" dependencies = [ "itoa", "memchr", - "ryu", "serde", + "serde_core", + "zmij", ] [[package]] @@ -1615,7 +1857,7 @@ checksum = "5d69265a08751de7844521fd15003ae0a888e035773ba05695c5c759a6f89eef" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.113", ] [[package]] @@ -1639,6 +1881,25 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +[[package]] +name = "shmem_providers" +version = "0.16.0" +dependencies = [ + "fast_rands", + "hashbrown 0.16.1", + "libafl_core", + "libc", + "log", + "nix 0.30.1", + "postcard", + "rustversion", + "serde", + "serial_test", + "uds", + "uuid", + "windows", +] + [[package]] name = "signal-hook" version = "0.3.18" @@ -1774,24 +2035,23 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "strum" -version = "0.26.3" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" +checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" dependencies = [ "strum_macros", ] [[package]] name = "strum_macros" -version = "0.26.4" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "rustversion", - "syn 2.0.101", + "syn 2.0.113", ] [[package]] @@ -1817,9 +2077,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.101" +version = "2.0.113" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" +checksum = "678faa00651c9eb72dd2020cbdf275d92eccb2400d568e419efdd64838145cb4" dependencies = [ "proc-macro2", "quote", @@ -1835,7 +2095,7 @@ dependencies = [ "fastrand", "getrandom 0.3.3", "once_cell", - "rustix 1.0.7", + "rustix", "windows-sys 0.59.0", ] @@ -1845,10 +2105,30 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "45c6481c4829e4cc63825e62c49186a34538b7b2750b73b266581ffb612fb5ed" dependencies = [ - "rustix 1.0.7", + "rustix", "windows-sys 0.59.0", ] +[[package]] +name = "thiserror" +version = "2.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.113", +] + [[package]] name = "time" version = "0.2.27" @@ -1864,6 +2144,27 @@ dependencies = [ "winapi", ] +[[package]] +name = "time" +version = "0.3.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" +dependencies = [ + "deranged", + "libc", + "num-conv", + "num_threads", + "powerfmt", + "serde", + "time-core", +] + +[[package]] +name = "time-core" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" + [[package]] name = "time-macros" version = "0.1.1" @@ -1943,24 +2244,36 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "141fb9f71ee586d956d7d6e4d5a9ef8e946061188520140f7591b668841d502e" +[[package]] +name = "tuple_list_ex" +version = "0.16.0" +dependencies = [ + "libafl_core", + "ownedref", + "rustversion", + "serde", + "tuple_list", + "typeid", +] + [[package]] name = "typed-builder" -version = "0.21.0" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce63bcaf7e9806c206f7d7b9c1f38e0dce8bb165a80af0898161058b19248534" +checksum = "31aa81521b70f94402501d848ccc0ecaa8f93c8eb6999eb9747e72287757ffda" dependencies = [ "typed-builder-macro", ] [[package]] name = "typed-builder-macro" -version = "0.21.0" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60d8d828da2a3d759d3519cdf29a5bac49c77d039ad36d0782edadbf9cd5415b" +checksum = "076a02dc54dd46795c2e9c8282ed40bcfb1e22747e955de9389a1de28190fb26" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.113", ] [[package]] @@ -1992,21 +2305,15 @@ checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" [[package]] name = "unicode-truncate" -version = "1.1.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3644627a5af5fa321c95b9b235a72fd24cd29c648c2c379431e6628655627bf" +checksum = "8fbf03860ff438702f3910ca5f28f8dac63c1c11e7efb5012b8b175493606330" dependencies = [ - "itertools", + "itertools 0.13.0", "unicode-segmentation", - "unicode-width 0.1.14", + "unicode-width", ] -[[package]] -name = "unicode-width" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" - [[package]] name = "unicode-width" version = "0.2.0" @@ -2019,6 +2326,12 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" +[[package]] +name = "unty" +version = "0.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae" + [[package]] name = "utf8parse" version = "0.2.2" @@ -2027,13 +2340,13 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.17.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cf4199d1e5d15ddd86a694e4d0dffa9c323ce759fea589f00fef9d81cc1931d" +checksum = "e2e054861b4bd027cd373e18e8d8d8e6548085000e41290d95ce0c373a654b4a" dependencies = [ "getrandom 0.3.3", "js-sys", - "serde", + "serde_core", "wasm-bindgen", ] @@ -2043,6 +2356,12 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" +[[package]] +name = "virtue" +version = "0.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "051eb1abcf10076295e815102942cc58f9d5e3b4560e46e53c21e8ff6f3af7b1" + [[package]] name = "wait-timeout" version = "0.2.1" @@ -2095,7 +2414,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.113", "wasm-bindgen-shared", ] @@ -2117,7 +2436,7 @@ checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.113", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -2133,30 +2452,20 @@ dependencies = [ [[package]] name = "which" -version = "7.0.3" +version = "8.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d643ce3fd3e5b54854602a080f34fb10ab75e0b813ee32d00ca2b44fa74762" +checksum = "d3fabb953106c3c8eea8306e4393700d7657561cb43122571b172bbfb7c7ba1d" dependencies = [ - "either", "env_home", - "rustix 1.0.7", + "rustix", "winsafe", ] [[package]] name = "wide" -version = "0.7.32" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41b5576b9a81633f3e8df296ce0063042a73507636cbe956c61133dd7034ab22" -dependencies = [ - "bytemuck", - "safe_arch", -] - -[[package]] -name = "wide" -version = "0.7.32" -source = "git+https://github.com/Lokathor/wide?rev=71b5df0b2620da753836fafce5f99076181a49fe#71b5df0b2620da753836fafce5f99076181a49fe" +checksum = "ac11b009ebeae802ed758530b6496784ebfee7a87b9abfbcaf3bbe25b814eb25" dependencies = [ "bytemuck", "safe_arch", @@ -2186,69 +2495,101 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows" -version = "0.59.0" +version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f919aee0a93304be7f62e8e5027811bbba96bcb1de84d6618be56e43f8a32a1" +checksum = "527fadee13e0c05939a6a05d5bd6eec6cd2e3dbd648b9f8e447c6518133d8580" +dependencies = [ + "windows-collections", + "windows-core", + "windows-future", + "windows-numerics", +] + +[[package]] +name = "windows-collections" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b2d95af1a8a14a3c7367e1ed4fc9c20e0a26e79551b1454d72583c97cc6610" dependencies = [ "windows-core", - "windows-targets 0.53.0", ] [[package]] name = "windows-core" -version = "0.59.0" +version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "810ce18ed2112484b0d4e15d022e5f598113e220c53e373fb31e67e21670c1ce" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" dependencies = [ "windows-implement", "windows-interface", + "windows-link", "windows-result", "windows-strings", - "windows-targets 0.53.0", +] + +[[package]] +name = "windows-future" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb" +dependencies = [ + "windows-core", + "windows-link", + "windows-threading", ] [[package]] name = "windows-implement" -version = "0.59.0" +version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83577b051e2f49a058c308f17f273b570a6a758386fc291b5f6a934dd84e48c1" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.113", ] [[package]] name = "windows-interface" -version = "0.59.1" +version = "0.59.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.113", ] [[package]] name = "windows-link" -version = "0.1.1" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-numerics" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e2e40844ac143cdb44aead537bbf727de9b044e107a0f1220392177d15b0f26" +dependencies = [ + "windows-core", + "windows-link", +] [[package]] name = "windows-result" -version = "0.3.4" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" dependencies = [ "windows-link", ] [[package]] name = "windows-strings" -version = "0.3.1" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87fa48cc5d406560701792be122a10132491cff9d0aeb23583cc2dcafc847319" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" dependencies = [ "windows-link", ] @@ -2303,6 +2644,15 @@ dependencies = [ "windows_x86_64_msvc 0.53.0", ] +[[package]] +name = "windows-threading" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3949bd5b99cafdf1c7ca86b43ca564028dfe27d66958f2470940f73d86d75b37" +dependencies = [ + "windows-link", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.52.6" @@ -2420,7 +2770,7 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.10.0", ] [[package]] @@ -2446,5 +2796,11 @@ checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.113", ] + +[[package]] +name = "zmij" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fc5a66a20078bf1251bde995aa2fdcc4b800c70b5d92dd2c62abc5c60f679f8" diff --git a/fuzzers/full_system/nyx_libxml2_standalone/setup_libxml2.sh b/fuzzers/full_system/nyx_libxml2_standalone/setup_libxml2.sh index 880eb94f7e0..b007df66f2b 100755 --- a/fuzzers/full_system/nyx_libxml2_standalone/setup_libxml2.sh +++ b/fuzzers/full_system/nyx_libxml2_standalone/setup_libxml2.sh @@ -1,32 +1,99 @@ #!/bin/bash +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" # cargo build --release # PWD=$(pwd) # export CC="$PWD/target/release/libafl_cc" # export CXX="$PWD/target/release/libafl_cxx" -# Check if afl-clang-fast exists in PATH -if ! command -v afl-clang-fast &> /dev/null -then - echo "afl-clang-fast not found. Cloning and compiling AFLplusplus..." - git clone https://github.com/AFLplusplus/AFLplusplus.git - pushd AFLplusplus - make +# Set LLVM_CONFIG if not set +if [ -z "$LLVM_CONFIG" ]; then + # Build the find_llvm_config utility + pushd "$SCRIPT_DIR/../../../utils/find_llvm_config" + cargo build --release popd - export CC="$(pwd)/AFLplusplus/afl-clang-fast" - export CXX="$(pwd)/AFLplusplus/afl-clang-fast++" + # It is in workspace target + if [ -f "$SCRIPT_DIR/../../../target/release/find_llvm_config" ]; then + LLVM_CONFIG=$("$SCRIPT_DIR/../../../target/release/find_llvm_config") + elif [ -f "$SCRIPT_DIR/../../../utils/find_llvm_config/target/release/find_llvm_config" ]; then + LLVM_CONFIG=$("$SCRIPT_DIR/../../../utils/find_llvm_config/target/release/find_llvm_config") + else + echo "Could not find find_llvm_config binary" + exit 1 + fi + export LLVM_CONFIG +fi + +# Ensure QEMU-Nyx is available +QEMU_NYX_BIN="$SCRIPT_DIR/../../../target/debug/QEMU-Nyx/x86_64-softmmu/qemu-system-x86_64" +if [ ! -f "$QEMU_NYX_BIN" ]; then + echo "QEMU-Nyx not found at $QEMU_NYX_BIN. Building libafl_nyx..." + pushd "$SCRIPT_DIR/../../.." > /dev/null + cargo build -p libafl_nyx || echo "Failed to build libafl_nyx, continuing anyway..." + popd > /dev/null +fi + +PACKER_DIR="$SCRIPT_DIR/../../../libafl_nyx/packer/packer" +if [ ! -d "$PACKER_DIR" ]; then + PACKER_DIR="$SCRIPT_DIR/target/debug/packer/packer" +fi + +if [ ! -f "$PACKER_DIR/nyx_packer.py" ]; then + echo "nyx_packer.py not found in $PACKER_DIR or source." + echo "Cloning nyx-fuzz/packer to use packer..." + # Clone into a temporary directory or local directory + if [ ! -d "packer" ]; then + git clone https://github.com/nyx-fuzz/packer + fi + PACKER_DIR="$(pwd)/packer/packer" +fi + +echo "PACKER_DIR: $PACKER_DIR" + +if [ -f "$QEMU_NYX_BIN" ]; then + echo "Found QEMU-Nyx at $QEMU_NYX_BIN" + # Create nyx.ini with correct QEMU path + # We only need to set QEMU-PT_PATH, others will default to relative paths which are correct + echo "[Packer]" > "$PACKER_DIR/nyx.ini" + echo "QEMU-PT_PATH=$QEMU_NYX_BIN" >> "$PACKER_DIR/nyx.ini" else - echo "afl-clang-fast already exists in PATH." - export CC="afl-clang-fast" - export CXX="afl-clang-fast++" + echo "WARNING: QEMU-Nyx still not found. nyx_config_gen.py might fail." +fi + +if [ -z "$AFL_CC" ]; then + export AFL_CC="$($LLVM_CONFIG --bindir)/clang" + export AFL_CXX="$($LLVM_CONFIG --bindir)/clang++" fi -curl -C - https://gitlab.gnome.org/GNOME/libxml2/-/archive/v2.9.14/libxml2-v2.9.14.tar.gz --output libxml2-v2.9.14.tar.gz +# Use libafl_cc +# We build it from the current crate (nyx_libxml2_parallel) which has src/bin/libafl_cc.rs +echo "Building libafl_cc..." +cargo build --bin libafl_cc + +LIBAFL_CC="$SCRIPT_DIR/target/debug/libafl_cc" +LIBAFL_CXX="$SCRIPT_DIR/target/debug/libafl_cxx" + +# Create symlink for C++ if missing +if [ ! -f "$LIBAFL_CXX" ]; then + ln -s "$LIBAFL_CC" "$LIBAFL_CXX" +fi + +export CC="$LIBAFL_CC" +export CXX="$LIBAFL_CXX" + +echo "DEBUG: CC: $CC" +$CC --version + +curl -L https://gitlab.gnome.org/GNOME/libxml2/-/archive/v2.9.14/libxml2-v2.9.14.tar.gz --output libxml2-v2.9.14.tar.gz tar -xf ./libxml2-v2.9.14.tar.gz --transform s/libxml2-v2.9.14/libxml2/ || exit cd ./libxml2/ || exit -./autogen.sh --enable-shared=no || exit +./autogen.sh --enable-shared=no --without-python || exit make -j || exit cd - || exit -python3 "./target/debug/packer/packer/nyx_packer.py" \ + + + + +python3 "$PACKER_DIR/nyx_packer.py" \ ./libxml2/xmllint \ /tmp/nyx_libxml2 \ afl \ @@ -36,4 +103,5 @@ python3 "./target/debug/packer/packer/nyx_packer.py" \ --fast_reload_mode \ --purge || exit -python3 ./target/debug/packer/packer/nyx_config_gen.py /tmp/nyx_libxml2/ Kernel || exit +# Config gen is also in packer dir +python3 "$PACKER_DIR/nyx_config_gen.py" /tmp/nyx_libxml2/ Kernel || exit diff --git a/fuzzers/fuzz_anything/baby_no_std/Cargo.lock b/fuzzers/fuzz_anything/baby_no_std/Cargo.lock index 6cd755d10fc..85bb7fd2b21 100644 --- a/fuzzers/fuzz_anything/baby_no_std/Cargo.lock +++ b/fuzzers/fuzz_anything/baby_no_std/Cargo.lock @@ -63,9 +63,9 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.1" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "cobs" @@ -78,9 +78,9 @@ dependencies = [ [[package]] name = "const_format" -version = "0.2.34" +version = "0.2.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "126f97965c8ad46d6d9163268ff28432e8f6a1196a55578867832e3049df63dd" +checksum = "7faa7469a93a566e9ccc1c73fe783b4a65c274c5ace346038dca9c39fe0030ad" dependencies = [ "const_format_proc_macros", ] @@ -98,9 +98,12 @@ dependencies = [ [[package]] name = "const_panic" -version = "0.2.12" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2459fc9262a1aa204eb4b5764ad4f189caec88aea9634389c0a25f8be7f6265e" +checksum = "e262cdaac42494e3ae34c43969f9cdeb7da178bdb4b66fa6a1ea2edb4c8ae652" +dependencies = [ + "typewit", +] [[package]] name = "embedded-io" @@ -116,11 +119,12 @@ checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" [[package]] name = "erased-serde" -version = "0.4.6" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e004d887f51fcb9fef17317a2f3525c887d8aa3f4f50fed920816a688284a5b7" +checksum = "89e8918065695684b2b0702da20382d5ae6065cf3327bc2d6436bd49a71ce9f3" dependencies = [ "serde", + "serde_core", "typeid", ] @@ -304,9 +308,9 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a" +checksum = "b1207a7e20ad57b847bbddc6776b968420d38292bbfe2089accff5e19e82454c" dependencies = [ "num_enum_derive", "rustversion", @@ -314,9 +318,9 @@ dependencies = [ [[package]] name = "num_enum_derive" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" +checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" dependencies = [ "proc-macro2", "quote", @@ -352,18 +356,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.95" +version = "1.0.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" +checksum = "535d180e0ecab6268a3e718bb9fd44db66bbbc256257165fc699dadf70d16fe7" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.40" +version = "1.0.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +checksum = "dc74d9a594b72ae6656596548f56f667211f8a97b3d4c3d467150794690dc40a" dependencies = [ "proc-macro2", ] @@ -450,9 +454,9 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "syn" -version = "2.0.104" +version = "2.0.113" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" +checksum = "678faa00651c9eb72dd2020cbdf275d92eccb2400d568e419efdd64838145cb4" dependencies = [ "proc-macro2", "quote", @@ -461,18 +465,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.12" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "2.0.12" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" dependencies = [ "proc-macro2", "quote", @@ -503,11 +507,17 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" +[[package]] +name = "typewit" +version = "1.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8c1ae7cc0fdb8b842d65d127cb981574b0d2b249b74d1c7a2986863dc134f71" + [[package]] name = "unicode-ident" -version = "1.0.18" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" [[package]] name = "unicode-xid" @@ -655,18 +665,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.26" +version = "0.8.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" +checksum = "fd74ec98b9250adb3ca554bdde269adf631549f51d8a8f8f0a10b50f1cb298c3" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.26" +version = "0.8.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" +checksum = "d8a8d209fdf45cf5138cbb5a506f6b52522a25afccc534d1475dad8e31105c6a" dependencies = [ "proc-macro2", "quote", diff --git a/fuzzers/fuzz_anything/cargo_fuzz/Justfile b/fuzzers/fuzz_anything/cargo_fuzz/Justfile index 2cfe5cddb66..00c228def6a 100644 --- a/fuzzers/fuzz_anything/cargo_fuzz/Justfile +++ b/fuzzers/fuzz_anything/cargo_fuzz/Justfile @@ -5,12 +5,12 @@ install_cargo_fuzz: cargo install cargo-fuzz build: install_cargo_fuzz install_llvm_tools - cargo +nightly fuzz build fuzz_target_1 + cargo +nightly fuzz build --target-dir fuzz/target fuzz_target_1 [linux] test: build #!/bin/bash - timeout 30s cargo +nightly fuzz run fuzz_target_1 2>&1 | tee fuzz_stdout.log || true + timeout 30s cargo +nightly fuzz run --target-dir fuzz/target fuzz_target_1 2>&1 | tee fuzz_stdout.log || true if grep -qa "objectives: 1" fuzz_stdout.log; then echo "Fuzzer is working" else diff --git a/fuzzers/inprocess/fuzzbench/Justfile b/fuzzers/inprocess/fuzzbench/Justfile index 7dbc49e47ef..e1218cb2783 100644 --- a/fuzzers/inprocess/fuzzbench/Justfile +++ b/fuzzers/inprocess/fuzzbench/Justfile @@ -5,74 +5,71 @@ PROFILE_DIR := if PROFILE == "release" { "release" } else if PROFILE == "dev" { CARGO_TARGET_DIR := env("CARGO_TARGET_DIR", "target") FUZZER := CARGO_TARGET_DIR / PROFILE_DIR / FUZZER_NAME - alias build := fuzzer - alias cc := cxx [linux] [macos] cxx: - cargo build --profile={{PROFILE}} + cargo build --profile={{ PROFILE }} [windows] cxx: - echo "Unsupported on this platform" + echo "Unsupported on this platform" [linux] [macos] fuzz_o: cxx - {{CARGO_TARGET_DIR}}/{{PROFILE_DIR}}/libafl_cc --libafl-no-link -O3 -c fuzz.c -o fuzz.o + {{ CARGO_TARGET_DIR }}/{{ PROFILE_DIR }}/libafl_cc --libafl-no-link -O3 -c fuzz.c -o fuzz.o [windows] fuzz_o: - echo "Unsupported on this platform" + echo "Unsupported on this platform" [linux] [macos] fuzzer: cxx fuzz_o - {{CARGO_TARGET_DIR}}/{{PROFILE_DIR}}/libafl_cxx --libafl fuzz.o -o {{FUZZER_NAME}} -lm -lz + {{ CARGO_TARGET_DIR }}/{{ PROFILE_DIR }}/libafl_cxx --libafl fuzz.o -o {{ FUZZER_NAME }} -lm -lz [windows] fuzzer: - echo "Unsupported on this platform" - + echo "Unsupported on this platform" [linux] [macos] run: cxx fuzz_o fuzzer - #!/bin/bash - rm -rf libafl_unix_shmem_server || true - mkdir in || true - echo a > in/a - ./{{FUZZER_NAME}} -o out -i in - # RUST_LOG=info ./{{FUZZER_NAME}} -o out -i seed + #!/bin/bash + rm -rf libafl_unix_shmem_server || true + mkdir in || true + echo a > in/a + ./{{ FUZZER_NAME }} -o out -i in + # RUST_LOG=info ./{{ FUZZER_NAME }} -o out -i seed [windows] run: - echo "Unsupported on this platform" + echo "Unsupported on this platform" [linux] [macos] test: fuzzer - #!/bin/bash - rm -rf libafl_unix_shmem_server || true - mkdir in || true - echo a > in/a - # Allow sigterm as exit code - timeout 31s ./{{FUZZER_NAME}} -o out -i in | tee fuzz_stdout.log || true - if grep -qa "objectives: 1" fuzz_stdout.log; then - echo "Fuzzer is working" - else - echo "Fuzzer does not generate any testcases or any crashes" - exit 1 - fi - rm -rf out || true - rm -rf in || true + #!/bin/bash + rm -rf libafl_unix_shmem_server || true + mkdir in || true + echo a > in/a + # Allow sigterm as exit code + timeout 31s ./{{ FUZZER_NAME }} -o out -i in | tee fuzz_stdout.log || true + if grep -qa "objectives: 1" fuzz_stdout.log; then + echo "Fuzzer is working" + else + echo "Fuzzer does not generate any testcases or any crashes" + exit 1 + fi + rm -rf out || true + rm -rf in || true [windows] test: fuzzer - echo "Unsupported on this platform" + echo "Unsupported on this platform" clean: - cargo clean + cargo clean diff --git a/fuzzers/inprocess/fuzzbench_ctx/Justfile b/fuzzers/inprocess/fuzzbench_ctx/Justfile index a0bf7510da1..cf261467c94 100644 --- a/fuzzers/inprocess/fuzzbench_ctx/Justfile +++ b/fuzzers/inprocess/fuzzbench_ctx/Justfile @@ -5,73 +5,70 @@ PROFILE_DIR := if PROFILE == "release" { "release" } else if PROFILE == "dev" { CARGO_TARGET_DIR := env("CARGO_TARGET_DIR", "target") FUZZER := CARGO_TARGET_DIR / PROFILE_DIR / FUZZER_NAME - alias build := fuzzer - alias cc := cxx [linux] [macos] cxx: - cargo build --profile={{PROFILE}} + cargo build --profile={{ PROFILE }} [windows] cxx: - echo "Unsupported on this platform" + echo "Unsupported on this platform" [linux] [macos] fuzz_o: cxx - {{CARGO_TARGET_DIR}}/{{PROFILE_DIR}}/libafl_cc --libafl-no-link -O3 -c fuzz.c -o fuzz.o + {{ CARGO_TARGET_DIR }}/{{ PROFILE_DIR }}/libafl_cc --libafl-no-link -O3 -c fuzz.c -o fuzz.o [windows] fuzz_o: - echo "Unsupported on this platform" + echo "Unsupported on this platform" [linux] [macos] fuzzer: cxx fuzz_o - {{CARGO_TARGET_DIR}}/{{PROFILE_DIR}}/libafl_cxx --libafl fuzz.o -o {{FUZZER_NAME}} -lm -lz + {{ CARGO_TARGET_DIR }}/{{ PROFILE_DIR }}/libafl_cxx --libafl fuzz.o -o {{ FUZZER_NAME }} -lm -lz [windows] fuzzer: - echo "Unsupported on this platform" - + echo "Unsupported on this platform" [linux] [macos] run: cxx fuzz_o fuzzer - #!/bin/bash - rm -rf libafl_unix_shmem_server || true - mkdir in || true - echo a > in/a - ./{{FUZZER_NAME}} -o out -i in + #!/bin/bash + rm -rf libafl_unix_shmem_server || true + mkdir in || true + echo a > in/a + ./{{ FUZZER_NAME }} -o out -i in [windows] run: - echo "Unsupported on this platform" + echo "Unsupported on this platform" [linux] [macos] test: fuzzer - #!/bin/bash - rm -rf libafl_unix_shmem_server || true - mkdir in || true - echo a > in/a - # Allow sigterm as exit code - timeout 31s ./{{FUZZER_NAME}} -o out -i in | tee fuzz_stdout.log || true - if grep -qa "objectives: 1" fuzz_stdout.log; then - echo "Fuzzer is working" - else - echo "Fuzzer does not generate any testcases or any crashes" - exit 1 - fi - rm -rf out || true - rm -rf in || true + #!/bin/bash + rm -rf libafl_unix_shmem_server || true + mkdir in || true + echo a > in/a + # Allow sigterm as exit code + timeout 31s ./{{ FUZZER_NAME }} -o out -i in | tee fuzz_stdout.log || true + if grep -qa "objectives: 1" fuzz_stdout.log; then + echo "Fuzzer is working" + else + echo "Fuzzer does not generate any testcases or any crashes" + exit 1 + fi + rm -rf out || true + rm -rf in || true [windows] test: fuzzer - echo "Unsupported on this platform" + echo "Unsupported on this platform" clean: - cargo clean + cargo clean diff --git a/fuzzers/inprocess/fuzzbench_text/Justfile b/fuzzers/inprocess/fuzzbench_text/Justfile index f51e6333f47..4d3c986b1ca 100644 --- a/fuzzers/inprocess/fuzzbench_text/Justfile +++ b/fuzzers/inprocess/fuzzbench_text/Justfile @@ -5,113 +5,110 @@ PROFILE_DIR := if PROFILE == "release" { "release" } else if PROFILE == "dev" { CARGO_TARGET_DIR := env("CARGO_TARGET_DIR", "target") FUZZER := CARGO_TARGET_DIR / PROFILE_DIR / FUZZER_NAME - alias build := fuzzer - alias cc := cxx [linux] [macos] cxx: - cargo build --profile={{PROFILE}} + cargo build --profile={{ PROFILE }} [windows] cxx: - echo "Unsupported on this platform" + echo "Unsupported on this platform" [linux] [macos] fuzz_o: cxx - {{CARGO_TARGET_DIR}}/{{PROFILE_DIR}}/libafl_cc --libafl-no-link -O3 -g -c fuzz.c -o fuzz.o + {{ CARGO_TARGET_DIR }}/{{ PROFILE_DIR }}/libafl_cc --libafl-no-link -O3 -g -c fuzz.c -o fuzz.o [windows] fuzz_o: - echo "Unsupported on this platform" + echo "Unsupported on this platform" [linux] [macos] fuzzer: cxx fuzz_o - {{CARGO_TARGET_DIR}}/{{PROFILE_DIR}}/libafl_cxx --libafl fuzz.o -o {{FUZZER_NAME}} -lm -lz + {{ CARGO_TARGET_DIR }}/{{ PROFILE_DIR }}/libafl_cxx --libafl fuzz.o -o {{ FUZZER_NAME }} -lm -lz [windows] fuzzer: - echo "Unsupported on this platform" - + echo "Unsupported on this platform" [linux] [macos] run: cxx fuzz_o - #!/bin/bash - rm -rf libafl_unix_shmem_server || true - mkdir in || true - echo a > in/a - ./{{FUZZER_NAME}} -o out -i in + #!/bin/bash + rm -rf libafl_unix_shmem_server || true + mkdir in || true + echo a > in/a + ./{{ FUZZER_NAME }} -o out -i in [windows] run: - echo "Unsupported on this platform" + echo "Unsupported on this platform" [linux] [macos] test: fuzzer test-dump-cov test-dump-cov-fuzz - #!/bin/bash - rm -rf libafl_unix_shmem_server || true - mkdir in || true - echo a > in/a - # Allow sigterm as exit code - timeout 31s ./{{FUZZER_NAME}} -o out -i in | tee fuzz_stdout.log || true - if grep -qa "objectives: 1" fuzz_stdout.log; then - echo "Fuzzer is working" - else - echo "Fuzzer does not generate any testcases or any crashes" - exit 1 - fi - rm -rf out || true - rm -rf in || true + #!/bin/bash + rm -rf libafl_unix_shmem_server || true + mkdir in || true + echo a > in/a + # Allow sigterm as exit code + timeout 31s ./{{ FUZZER_NAME }} -o out -i in | tee fuzz_stdout.log || true + if grep -qa "objectives: 1" fuzz_stdout.log; then + echo "Fuzzer is working" + else + echo "Fuzzer does not generate any testcases or any crashes" + exit 1 + fi + rm -rf out || true + rm -rf in || true [windows] test: fuzzer - echo "Unsupported on this platform" + echo "Unsupported on this platform" clean: - cargo clean + cargo clean test-dump-cov: - cargo build --profile={{PROFILE}} --features dump_cov - {{CARGO_TARGET_DIR}}/{{PROFILE_DIR}}/libafl_cc --libafl-no-link -O3 -g -c fuzz.c -o fuzz.o - {{CARGO_TARGET_DIR}}/{{PROFILE_DIR}}/libafl_cxx -g -rdynamic --libafl fuzz.o -o {{FUZZER_NAME}} -lm -lz - # Create a dummy seed - mkdir -p seeds_dump - mkdir -p coverage_dump - echo "dummy" > seeds_dump/dummy - # Run with --dump-cov - ./fuzzbench -i seeds_dump -o corpus_dump --dump-cov coverage_dump seeds_dump/dummy - # Verify output - ls -l coverage_dump/dummy.info - grep "TN:" coverage_dump/dummy.info - grep "TN:" coverage_dump/dummy.info - if command -v genhtml >/dev/null 2>&1; then \ - genhtml coverage_dump/dummy.info --output-directory coverage_dump/html; \ - ls coverage_dump/html/index.html; \ - else \ - echo "genhtml not found, skipping HTML report generation"; \ - fi - # Clean up - rm -rf seeds_dump corpus_dump coverage_dump + cargo build --profile={{ PROFILE }} --features dump_cov + {{ CARGO_TARGET_DIR }}/{{ PROFILE_DIR }}/libafl_cc --libafl-no-link -O3 -g -c fuzz.c -o fuzz.o + {{ CARGO_TARGET_DIR }}/{{ PROFILE_DIR }}/libafl_cxx -g -rdynamic --libafl fuzz.o -o {{ FUZZER_NAME }} -lm -lz + # Create a dummy seed + mkdir -p seeds_dump + mkdir -p coverage_dump + echo "dummy" > seeds_dump/dummy + # Run with --dump-cov + ./fuzzbench -i seeds_dump -o corpus_dump --dump-cov coverage_dump seeds_dump/dummy + # Verify output + ls -l coverage_dump/dummy.info + grep "TN:" coverage_dump/dummy.info + grep "TN:" coverage_dump/dummy.info + if command -v genhtml >/dev/null 2>&1; then \ + genhtml coverage_dump/dummy.info --output-directory coverage_dump/html; \ + ls coverage_dump/html/index.html; \ + else \ + echo "genhtml not found, skipping HTML report generation"; \ + fi + # Clean up + rm -rf seeds_dump corpus_dump coverage_dump test-dump-cov-fuzz: - cargo build --profile={{PROFILE}} --features dump_cov - {{CARGO_TARGET_DIR}}/{{PROFILE_DIR}}/libafl_cc --libafl-no-link -O3 -g -c fuzz.c -o fuzz.o - {{CARGO_TARGET_DIR}}/{{PROFILE_DIR}}/libafl_cxx -g -rdynamic --libafl fuzz.o -o {{FUZZER_NAME}} -lm -lz - # Run fuzzing with dump_cov enabled but not active - rm -rf libafl_unix_shmem_server || true - mkdir -p in_dump_fuzz - echo a > in_dump_fuzz/a - timeout 31s ./{{FUZZER_NAME}} -o out_dump_fuzz -i in_dump_fuzz | tee fuzz_dump_stdout.log || true - if grep -qa "corpus: [2-9]" fuzz_dump_stdout.log || grep -qa "corpus: [1-9][0-9]" fuzz_dump_stdout.log; then \ - echo "Fuzzer with dump_cov enabled is working (found multiple corpus entries)"; \ - else \ - echo "Fuzzer with dump_cov enabled failed to find multiple corpus entries"; \ - exit 1; \ - fi - rm -rf out_dump_fuzz in_dump_fuzz fuzz_dump_stdout.log + cargo build --profile={{ PROFILE }} --features dump_cov + {{ CARGO_TARGET_DIR }}/{{ PROFILE_DIR }}/libafl_cc --libafl-no-link -O3 -g -c fuzz.c -o fuzz.o + {{ CARGO_TARGET_DIR }}/{{ PROFILE_DIR }}/libafl_cxx -g -rdynamic --libafl fuzz.o -o {{ FUZZER_NAME }} -lm -lz + # Run fuzzing with dump_cov enabled but not active + rm -rf libafl_unix_shmem_server || true + mkdir -p in_dump_fuzz + echo a > in_dump_fuzz/a + timeout 31s ./{{ FUZZER_NAME }} -o out_dump_fuzz -i in_dump_fuzz | tee fuzz_dump_stdout.log || true + if grep -qa "corpus: [2-9]" fuzz_dump_stdout.log || grep -qa "corpus: [1-9][0-9]" fuzz_dump_stdout.log; then \ + echo "Fuzzer with dump_cov enabled is working (found multiple corpus entries)"; \ + else \ + echo "Fuzzer with dump_cov enabled failed to find multiple corpus entries"; \ + exit 1; \ + fi + rm -rf out_dump_fuzz in_dump_fuzz fuzz_dump_stdout.log diff --git a/fuzzers/inprocess/libafl_libfuzzer_windows/Justfile b/fuzzers/inprocess/libafl_libfuzzer_windows/Justfile index e8a8686c4e2..ae2f5e65601 100644 --- a/fuzzers/inprocess/libafl_libfuzzer_windows/Justfile +++ b/fuzzers/inprocess/libafl_libfuzzer_windows/Justfile @@ -1,10 +1,10 @@ import "../../../just/libafl.just" -FUZZER_NAME := "libafl_libfuzzer_windows" +FUZZER_NAME := "libafl_libfuzzer_windows" FUZZER_NAME_WIN := "libafl_libfuzzer_windows.exe" set windows-shell := ['cmd.exe', '/c'] -set unstable +set unstable := true [windows] libafl_libfuzzer: @@ -19,12 +19,12 @@ harness: libafl_libfuzzer [windows] run: harness if not exist corpus mkdir corpus - {{FUZZER_NAME_WIN}} -use_value_profile=1 corpus + {{ FUZZER_NAME_WIN }} -use_value_profile=1 corpus -[windows] [script("cmd.exe", "/c")] +[windows] test: harness if exist corpus rd /s /q corpus mkdir corpus - {{FUZZER_NAME_WIN}} -use_value_profile=1 -runs=30000 corpus - dir /a-d corpus && (echo Files exist) || (exit /b 1337) \ No newline at end of file + {{ FUZZER_NAME_WIN }} -use_value_profile=1 -runs=30000 corpus + dir /a-d corpus && (echo Files exist) || (exit /b 1337) diff --git a/fuzzers/inprocess/libfuzzer_libmozjpeg/Justfile b/fuzzers/inprocess/libfuzzer_libmozjpeg/Justfile index 3af56a723db..fb40de432d4 100644 --- a/fuzzers/inprocess/libfuzzer_libmozjpeg/Justfile +++ b/fuzzers/inprocess/libfuzzer_libmozjpeg/Justfile @@ -3,10 +3,9 @@ PROJECT_DIR := absolute_path(".") PROFILE := env("PROFILE", "release") PROFILE_DIR := if PROFILE == "release" { "release" } else if PROFILE == "dev" { "debug" } else { "debug" } CARGO_TARGET_DIR := env("CARGO_TARGET_DIR", "target") -FUZZER := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / FUZZER_NAME -LIBAFL_CC := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cc" -LIBAFL_CXX := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cxx" - +FUZZER := CARGO_TARGET_DIR / PROFILE_DIR / FUZZER_NAME +LIBAFL_CC := CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cc" +LIBAFL_CXX := CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cxx" alias cc := cxx @@ -26,7 +25,7 @@ mozjpg: [linux] [macos] cxx: - cargo build --profile {{PROFILE}} + cargo build --profile {{ PROFILE }} [windows] cxx: @@ -36,8 +35,8 @@ cxx: [macos] lib: mozjpg cxx #!/bin/bash - cd mozjpeg-4.0.3 && cmake . -DENABLE_SHARED=false -DPNG_SUPPORTED=false -DCMAKE_C_COMPILER="{{LIBAFL_CC}}" -DCMAKE_CXX_COMPILER="{{LIBAFL_CXX}}" -G "Unix Makefiles" - cd {{PROJECT_DIR}} + cd mozjpeg-4.0.3 && cmake . -DENABLE_SHARED=false -DPNG_SUPPORTED=false -DCMAKE_C_COMPILER="{{ LIBAFL_CC }}" -DCMAKE_CXX_COMPILER="{{ LIBAFL_CXX }}" -G "Unix Makefiles" + cd {{ PROJECT_DIR }} make -C mozjpeg-4.0.3 [windows] @@ -47,7 +46,7 @@ lib: [linux] [macos] fuzzer: lib cxx - {{LIBAFL_CXX}} {{PROJECT_DIR}}/harness.cc {{PROJECT_DIR}}/mozjpeg-4.0.3/libjpeg.a {{PROJECT_DIR}}/mozjpeg-4.0.3/libturbojpeg.a -I {{PROJECT_DIR}}/mozjpeg-4.0.3/ -o {{FUZZER_NAME}} -lm -lz + {{ LIBAFL_CXX }} {{ PROJECT_DIR }}/harness.cc {{ PROJECT_DIR }}/mozjpeg-4.0.3/libjpeg.a {{ PROJECT_DIR }}/mozjpeg-4.0.3/libturbojpeg.a -I {{ PROJECT_DIR }}/mozjpeg-4.0.3/ -o {{ FUZZER_NAME }} -lm -lz [windows] fuzzer: @@ -57,9 +56,9 @@ fuzzer: [macos] run: fuzzer #!/bin/bash - ./{{FUZZER_NAME}} & + ./{{ FUZZER_NAME }} & sleep 0.2 - ./{{FUZZER_NAME}} + ./{{ FUZZER_NAME }} [windows] run: fuzzer @@ -70,9 +69,9 @@ run: fuzzer test: fuzzer #!/bin/bash rm -rf libafl_unix_shmem_server || true - (timeout 31s ./{{FUZZER_NAME}} | tee fuzz_stdout.log 2>/dev/null || true) & + (timeout 31s ./{{ FUZZER_NAME }} | tee fuzz_stdout.log 2>/dev/null || true) & sleep 0.2 - timeout 30s ./{{FUZZER_NAME}} >/dev/null 2>/dev/null || true + timeout 30s ./{{ FUZZER_NAME }} >/dev/null 2>/dev/null || true if grep -qa "corpus: 30" fuzz_stdout.log; then echo "Fuzzer is working" else @@ -85,7 +84,6 @@ test: fuzzer echo "Unsupported on this platform" clean: - rm -rf {{FUZZER_NAME}} + rm -rf {{ FUZZER_NAME }} make -C mozjpeg-4.0.3 clean || true cargo clean - diff --git a/fuzzers/inprocess/libfuzzer_libpng/Justfile b/fuzzers/inprocess/libfuzzer_libpng/Justfile index 10c6446ed05..440cc131692 100644 --- a/fuzzers/inprocess/libfuzzer_libpng/Justfile +++ b/fuzzers/inprocess/libfuzzer_libpng/Justfile @@ -4,11 +4,11 @@ FUZZER_NAME := 'fuzzer_libpng' [unix] cc feat: - cargo build --profile {{PROFILE}} --features="{{feat}}" + cargo build --profile {{ PROFILE }} --features="{{ feat }}" [unix] cxx feat: - cargo build --profile {{PROFILE}} --features="{{feat}}" + cargo build --profile {{ PROFILE }} --features="{{ feat }}" [unix] lib feat: (libpng feat) (cxx feat) @@ -16,31 +16,31 @@ lib feat: (libpng feat) (cxx feat) # Feat is either nothing or "crash" [unix] fuzzer feat="": (lib feat) (cxx feat) - {{LIBAFL_CXX}} {{PROJECT_DIR}}/harness.cc \ - "{{LIBPNG_BUILD}}/.libs/libpng16.a" \ - "{{ZLIB_BUILD}}/libz.a" \ - -I"{{LIBPNG_INCLUDE}}" \ - -I"{{LIBPNG_BUILD}}" \ - -I"{{ZLIB_INCLUDE}}" \ - -L"{{ZLIB_LIB}}" \ - -o {{FUZZER_NAME}} \ + {{ LIBAFL_CXX }} {{ PROJECT_DIR }}/harness.cc \ + "{{ LIBPNG_BUILD }}/.libs/libpng16.a" \ + "{{ ZLIB_BUILD }}/libz.a" \ + -I"{{ LIBPNG_INCLUDE }}" \ + -I"{{ LIBPNG_BUILD }}" \ + -I"{{ ZLIB_INCLUDE }}" \ + -L"{{ ZLIB_LIB }}" \ + -o {{ FUZZER_NAME }} \ -lm -lz # Feat is either nothing or "crash" [unix] run feat="": (fuzzer feat) #!/bin/bash - ./{{FUZZER_NAME}} & + ./{{ FUZZER_NAME }} & sleep 0.2 - ./{{FUZZER_NAME}} 2>/dev/null + ./{{ FUZZER_NAME }} 2>/dev/null [unix] test: fuzzer #!/bin/bash rm -rf libafl_unix_shmem_server || true - (timeout 31s ./{{FUZZER_NAME}} 2>/dev/null | tee fuzz_stdout.log || true) & + (timeout -s KILL 31s ./{{ FUZZER_NAME }} 2>/dev/null | tee fuzz_stdout.log || true) & sleep 0.2 - timeout 30s ./{{FUZZER_NAME}} >/dev/null 2>/dev/null || true + timeout -s KILL 30s ./{{ FUZZER_NAME }} >/dev/null 2>/dev/null || true if grep -qa "corpus: 30" fuzz_stdout.log; then echo "Fuzzer is working" else @@ -49,6 +49,6 @@ test: fuzzer fi clean: - rm -rf {{FUZZER_NAME}} + rm -rf {{ FUZZER_NAME }} make -C libpng-1.6.37 clean || true - cargo clean \ No newline at end of file + cargo clean diff --git a/fuzzers/inprocess/libfuzzer_libpng_accounting/Justfile b/fuzzers/inprocess/libfuzzer_libpng_accounting/Justfile index 6d44b439247..b53e20b67f2 100644 --- a/fuzzers/inprocess/libfuzzer_libpng_accounting/Justfile +++ b/fuzzers/inprocess/libfuzzer_libpng_accounting/Justfile @@ -3,10 +3,9 @@ PROJECT_DIR := absolute_path(".") PROFILE := env("PROFILE", "release") PROFILE_DIR := if PROFILE == "release" { "release" } else if PROFILE == "dev" { "debug" } else { "debug" } CARGO_TARGET_DIR := env("CARGO_TARGET_DIR", "target") -FUZZER := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / FUZZER_NAME -LIBAFL_CC := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cc" -LIBAFL_CXX := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cxx" - +FUZZER := CARGO_TARGET_DIR / PROFILE_DIR / FUZZER_NAME +LIBAFL_CC := CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cc" +LIBAFL_CXX := CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cxx" alias cc := cxx @@ -26,7 +25,7 @@ libpng: [linux] [macos] cxx: - cargo build --profile {{PROFILE}} + cargo build --profile {{ PROFILE }} [windows] cxx: @@ -37,8 +36,8 @@ cxx: lib: libpng cxx #!/bin/bash cd libpng-1.6.37 && ./configure --enable-shared=no --with-pic=yes --enable-hardware-optimizations=yes - cd {{PROJECT_DIR}} - make -C libpng-1.6.37 CC="{{LIBAFL_CC}}" CXX="{{LIBAFL_CXX}}" + cd {{ PROJECT_DIR }} + make -C libpng-1.6.37 CC="{{ LIBAFL_CC }}" CXX="{{ LIBAFL_CXX }}" [windows] lib: @@ -47,7 +46,7 @@ lib: [linux] [macos] fuzzer: lib cxx - {{LIBAFL_CXX}} {{PROJECT_DIR}}/harness.cc {{PROJECT_DIR}}/libpng-1.6.37/.libs/libpng16.a -I {{PROJECT_DIR}}/libpng-1.6.37/ -o {{FUZZER_NAME}} -lm -lz + {{ LIBAFL_CXX }} {{ PROJECT_DIR }}/harness.cc {{ PROJECT_DIR }}/libpng-1.6.37/.libs/libpng16.a -I {{ PROJECT_DIR }}/libpng-1.6.37/ -o {{ FUZZER_NAME }} -lm -lz [windows] fuzzer: @@ -56,7 +55,7 @@ fuzzer: [linux] [macos] run: fuzzer - ./{{FUZZER_NAME}} --cores 0 --input ./corpus + ./{{ FUZZER_NAME }} --cores 0 --input ./corpus [windows] run: fuzzer @@ -67,7 +66,7 @@ run: fuzzer test: fuzzer #!/bin/bash rm -rf libafl_unix_shmem_server || true - timeout 31s ./{{FUZZER_NAME}} --cores 0 --input ./corpus 2>/dev/null | tee fuzz_stdout.log || true + timeout 31s ./{{ FUZZER_NAME }} --cores 0 --input ./corpus 2>/dev/null | tee fuzz_stdout.log || true if grep -qa "corpus: 30" fuzz_stdout.log; then echo "Fuzzer is working" else @@ -80,7 +79,6 @@ test: fuzzer echo "Unsupported on this platform" clean: - rm -rf {{FUZZER_NAME}} + rm -rf {{ FUZZER_NAME }} make -C libpng-1.6.37 clean || true cargo clean - diff --git a/fuzzers/inprocess/libfuzzer_libpng_centralized/Justfile b/fuzzers/inprocess/libfuzzer_libpng_centralized/Justfile index 5f8de1834ef..30b8f97a311 100644 --- a/fuzzers/inprocess/libfuzzer_libpng_centralized/Justfile +++ b/fuzzers/inprocess/libfuzzer_libpng_centralized/Justfile @@ -3,10 +3,10 @@ PROJECT_DIR := absolute_path(".") PROFILE := env("PROFILE", "release") PROFILE_DIR := if PROFILE == "release" { "release" } else if PROFILE == "dev" { "debug" } else { "debug" } CARGO_TARGET_DIR := env("CARGO_TARGET_DIR", "target") -FUZZER := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / FUZZER_NAME -LIBAFL_CC := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cc" -LIBAFL_CXX := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cxx" -LIBTOOL := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / "libafl_libtool" +FUZZER := CARGO_TARGET_DIR / PROFILE_DIR / FUZZER_NAME +LIBAFL_CC := CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cc" +LIBAFL_CXX := CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cxx" +LIBTOOL := CARGO_TARGET_DIR / PROFILE_DIR / "libafl_libtool" alias cc := cxx @@ -50,12 +50,12 @@ lib: [linux] fuzzer: lib cxx cp {{PROJECT_DIR}}/libpng-1.6.37/.libs/libpng16.coverage_ubsan.a {{PROJECT_DIR}}/libpng-1.6.37/.libs/libpng16.a - {{LIBAFL_CXX}} {{PROJECT_DIR}}/harness.cc -Wl,--whole-archive {{PROJECT_DIR}}/target/{{PROFILE_DIR}}/liblibfuzzer_libpng.a -Wl,--no-whole-archive -Wl,--whole-archive {{PROJECT_DIR}}/libpng-1.6.37/.libs/libpng16.a -Wl,--no-whole-archive -I {{PROJECT_DIR}}/libpng-1.6.37/ -o {{FUZZER_NAME}} -lm -lz --libafl-ignore-configurations -fsanitize=undefined --libafl-no-link + {{LIBAFL_CXX}} {{PROJECT_DIR}}/harness.cc -Wl,--whole-archive {{CARGO_TARGET_DIR}}/{{PROFILE_DIR}}/liblibfuzzer_libpng.a -Wl,--no-whole-archive -Wl,--whole-archive {{PROJECT_DIR}}/libpng-1.6.37/.libs/libpng16.a -Wl,--no-whole-archive -I {{PROJECT_DIR}}/libpng-1.6.37/ -o {{FUZZER_NAME}} -lm -lz --libafl-ignore-configurations -fsanitize=undefined --libafl-no-link [macos] fuzzer: lib cxx cp {{PROJECT_DIR}}/libpng-1.6.37/.libs/libpng16.coverage_ubsan.a {{PROJECT_DIR}}/libpng-1.6.37/.libs/libpng16.a - {{LIBAFL_CXX}} {{PROJECT_DIR}}/harness.cc {{PROJECT_DIR}}/target/{{PROFILE_DIR}}/liblibfuzzer_libpng.a -Wl,-force_load,{{PROJECT_DIR}}/libpng-1.6.37/.libs/libpng16.a -I {{PROJECT_DIR}}/libpng-1.6.37/ -o {{FUZZER_NAME}} -lm -lz -framework CoreFoundation -framework Security + {{LIBAFL_CXX}} {{PROJECT_DIR}}/harness.cc {{CARGO_TARGET_DIR}}/{{PROFILE_DIR}}/liblibfuzzer_libpng.a -Wl,-force_load,{{PROJECT_DIR}}/libpng-1.6.37/.libs/libpng16.a -I {{PROJECT_DIR}}/libpng-1.6.37/ -o {{FUZZER_NAME}} -lm -lz -framework CoreFoundation -framework Security [windows] fuzzer: @@ -78,7 +78,7 @@ test: fuzzer rm -rf out corpus mkdir -p corpus printf "\x89PNG\r\n\x1a\n" > corpus/seed.png - timeout 120s ./{{FUZZER_NAME}} --cores 0-1 --input ./corpus > fuzz_stdout.log 2>&1 || true + timeout -s KILL 120s ./{{FUZZER_NAME}} --cores 0-1 --input ./corpus > fuzz_stdout.log 2>&1 || true if grep -Eqa "(corpus|objectives): [1-9]" fuzz_stdout.log; then echo "Fuzzer is working" else diff --git a/fuzzers/inprocess/libfuzzer_libpng_cmin/Justfile b/fuzzers/inprocess/libfuzzer_libpng_cmin/Justfile index bb9ed60a8f8..d1ecdb4ab40 100644 --- a/fuzzers/inprocess/libfuzzer_libpng_cmin/Justfile +++ b/fuzzers/inprocess/libfuzzer_libpng_cmin/Justfile @@ -3,10 +3,9 @@ PROJECT_DIR := absolute_path(".") PROFILE := env("PROFILE", "release") PROFILE_DIR := if PROFILE == "release" { "release" } else if PROFILE == "dev" { "debug" } else { "debug" } CARGO_TARGET_DIR := env("CARGO_TARGET_DIR", "target") -FUZZER := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / FUZZER_NAME -LIBAFL_CC := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cc" -LIBAFL_CXX := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cxx" - +FUZZER := CARGO_TARGET_DIR / PROFILE_DIR / FUZZER_NAME +LIBAFL_CC := CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cc" +LIBAFL_CXX := CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cxx" alias cc := cxx @@ -26,7 +25,7 @@ libpng: [linux] [macos] cxx: - cargo build --profile {{PROFILE}} + cargo build --profile {{ PROFILE }} [windows] cxx: @@ -35,7 +34,7 @@ cxx: [linux] [macos] crash_cxx: - cargo build --profile {{PROFILE}} --features=crash + cargo build --profile {{ PROFILE }} --features=crash [windows] crash_cxx: @@ -46,8 +45,8 @@ crash_cxx: lib: libpng cxx #!/bin/bash cd libpng-1.6.37 && ./configure --enable-shared=no --with-pic=yes --enable-hardware-optimizations=yes - cd {{PROJECT_DIR}} - make -C libpng-1.6.37 CC="{{LIBAFL_CC}}" CXX="{{LIBAFL_CXX}}" + cd {{ PROJECT_DIR }} + make -C libpng-1.6.37 CC="{{ LIBAFL_CC }}" CXX="{{ LIBAFL_CXX }}" [windows] lib: @@ -58,8 +57,8 @@ lib: crash_lib: libpng crash_cxx #!/bin/bash cd libpng-1.6.37 && ./configure --enable-shared=no --with-pic=yes --enable-hardware-optimizations=yes - cd {{PROJECT_DIR}} - make -C libpng-1.6.37 CC="{{LIBAFL_CC}}" CXX="{{LIBAFL_CXX}}" + cd {{ PROJECT_DIR }} + make -C libpng-1.6.37 CC="{{ LIBAFL_CC }}" CXX="{{ LIBAFL_CXX }}" [windows] crash_lib: @@ -68,7 +67,7 @@ crash_lib: [linux] [macos] fuzzer: lib cxx - {{LIBAFL_CXX}} {{PROJECT_DIR}}/harness.cc {{PROJECT_DIR}}/libpng-1.6.37/.libs/libpng16.a -I {{PROJECT_DIR}}/libpng-1.6.37/ -o {{FUZZER_NAME}} -lm -lz -lz3 + {{ LIBAFL_CXX }} {{ PROJECT_DIR }}/harness.cc {{ PROJECT_DIR }}/libpng-1.6.37/.libs/libpng16.a -I {{ PROJECT_DIR }}/libpng-1.6.37/ -o {{ FUZZER_NAME }} -lm -lz -lz3 [windows] fuzzer: @@ -77,20 +76,19 @@ fuzzer: [linux] [macos] crash_fuzzer: crash_lib crash_cxx - {{LIBAFL_CXX}} {{PROJECT_DIR}}/harness.cc {{PROJECT_DIR}}/libpng-1.6.37/.libs/libpng16.a -I {{PROJECT_DIR}}/libpng-1.6.37/ -o {{FUZZER_NAME}} -lm -lz -lz3 + {{ LIBAFL_CXX }} {{ PROJECT_DIR }}/harness.cc {{ PROJECT_DIR }}/libpng-1.6.37/.libs/libpng16.a -I {{ PROJECT_DIR }}/libpng-1.6.37/ -o {{ FUZZER_NAME }} -lm -lz -lz3 [windows] crash_fuzzer: echo "Unsupported on this platform" - [linux] [macos] run: fuzzer #!/bin/bash - ./{{FUZZER_NAME}} & + ./{{ FUZZER_NAME }} & sleep 0.2 - ./{{FUZZER_NAME}} 2>/dev/null + ./{{ FUZZER_NAME }} 2>/dev/null [windows] run: fuzzer @@ -100,23 +98,22 @@ run: fuzzer [macos] crash: crash_fuzzer #!/bin/bash - ./{{FUZZER_NAME}} & + ./{{ FUZZER_NAME }} & sleep 0.2 - ./{{FUZZER_NAME}} 2>/dev/null + ./{{ FUZZER_NAME }} 2>/dev/null [windows] crash: fuzzer echo "Unsupported on this platform" - [linux] [macos] test: fuzzer #!/bin/bash rm -rf libafl_unix_shmem_server || true - (timeout 31s ./{{FUZZER_NAME}} 2>/dev/null | tee fuzz_stdout.log|| true) & + (timeout 31s ./{{ FUZZER_NAME }} 2>/dev/null | tee fuzz_stdout.log|| true) & sleep 0.2 - timeout 30s ./{{FUZZER_NAME}} >/dev/null 2>/dev/null || true + timeout 30s ./{{ FUZZER_NAME }} >/dev/null 2>/dev/null || true if grep -qa "corpus: 30" fuzz_stdout.log; then echo "Fuzzer is working" else @@ -129,7 +126,6 @@ test: fuzzer echo "Unsupported on this platform" clean: - rm -rf {{FUZZER_NAME}} + rm -rf {{ FUZZER_NAME }} make -C libpng-1.6.37 clean || true cargo clean - diff --git a/fuzzers/inprocess/libfuzzer_libpng_launcher/Justfile b/fuzzers/inprocess/libfuzzer_libpng_launcher/Justfile index caa786b28f1..63df447c1fb 100644 --- a/fuzzers/inprocess/libfuzzer_libpng_launcher/Justfile +++ b/fuzzers/inprocess/libfuzzer_libpng_launcher/Justfile @@ -2,12 +2,11 @@ FUZZER_NAME := 'fuzzer_libpng_launcher' PROJECT_DIR := absolute_path(".") PROFILE := env("PROFILE", "release") PROFILE_DIR := if PROFILE == "release" { "release" } else if PROFILE == "dev" { "debug" } else { "debug" } -CARGO_TARGET_DIR := env("CARGO_TARGET_DIR", "target") -FUZZER := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / FUZZER_NAME -LIBAFL_CC := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cc" -LIBAFL_CXX := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cxx" -LIBTOOL := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / "libafl_libtool" - +CARGO_TARGET_DIR := shell("python3 -c 'import os, sys; print(os.path.abspath(sys.argv[1]))' " + env("CARGO_TARGET_DIR", "target")) +FUZZER := CARGO_TARGET_DIR / PROFILE_DIR / FUZZER_NAME +LIBAFL_CC := CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cc" +LIBAFL_CXX := CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cxx" +LIBTOOL := CARGO_TARGET_DIR / PROFILE_DIR / "libafl_libtool" alias cc := cxx @@ -27,7 +26,7 @@ libpng: [linux] [macos] cxx: - cargo build --profile {{PROFILE}} + cargo build --profile {{ PROFILE }} [windows] cxx: @@ -38,14 +37,14 @@ cxx: lib: libpng cxx #!/bin/bash if [ ! -f libpng-1.6.37/.libs/libpng16.a ]; then - cd libpng-1.6.37 && CC={{LIBAFL_CC}} CXX={{LIBAFL_CXX}} ./configure --enable-shared=no --with-pic=yes --enable-hardware-optimizations=no + cd libpng-1.6.37 && CC={{ LIBAFL_CC }} CXX={{ LIBAFL_CXX }} ./configure --enable-shared=no --with-pic=yes --enable-hardware-optimizations=no else echo "libpng already built, skipping configure..." fi - cd {{PROJECT_DIR}} + cd {{ PROJECT_DIR }} # Patch for macOS: fp.h is missing in newer SDKs, use math.h instead sed -i.bak 's|include |include |g' libpng-1.6.37/pngpriv.h - make -C libpng-1.6.37 libpng16.la CC="{{LIBAFL_CC}}" CXX="{{LIBAFL_CXX}}" LIBTOOL="{{LIBTOOL}}" + make -C libpng-1.6.37 libpng16.la CC="{{ LIBAFL_CC }}" CXX="{{ LIBAFL_CXX }}" LIBTOOL="{{ LIBTOOL }}" [windows] lib: @@ -53,15 +52,15 @@ lib: [linux] fuzzer: lib cxx - mkdir -p {{PROJECT_DIR}}/corpus - cp {{PROJECT_DIR}}/libpng-1.6.37/contrib/testpngs/rgb-alpha-8.png {{PROJECT_DIR}}/corpus/seed.png - {{LIBAFL_CXX}} {{PROJECT_DIR}}/harness.cc {{PROJECT_DIR}}/target/{{PROFILE_DIR}}/liblibfuzzer_libpng.a {{PROJECT_DIR}}/libpng-1.6.37/.libs/libpng16.coverage.a -I {{PROJECT_DIR}}/libpng-1.6.37/ -o {{FUZZER_NAME}}.coverage -lm -lz --libafl-ignore-configurations -Wl,--allow-multiple-definition + mkdir -p {{ PROJECT_DIR }}/corpus + cp {{ PROJECT_DIR }}/libpng-1.6.37/contrib/testpngs/rgb-alpha-8.png {{ PROJECT_DIR }}/corpus/seed.png + {{ LIBAFL_CXX }} {{ PROJECT_DIR }}/harness.cc {{ CARGO_TARGET_DIR }}/{{ PROFILE_DIR }}/liblibfuzzer_libpng.a {{ PROJECT_DIR }}/libpng-1.6.37/.libs/libpng16.coverage.a -I {{ PROJECT_DIR }}/libpng-1.6.37/ -o {{ FUZZER_NAME }}.coverage -lm -lz --libafl-ignore-configurations -Wl,--allow-multiple-definition [macos] fuzzer: lib cxx - mkdir -p {{PROJECT_DIR}}/corpus - cp {{PROJECT_DIR}}/libpng-1.6.37/contrib/testpngs/rgb-alpha-8.png {{PROJECT_DIR}}/corpus/seed.png - {{LIBAFL_CXX}} {{PROJECT_DIR}}/harness.cc {{PROJECT_DIR}}/target/{{PROFILE_DIR}}/liblibfuzzer_libpng.a {{PROJECT_DIR}}/libpng-1.6.37/.libs/libpng16.coverage.a -I {{PROJECT_DIR}}/libpng-1.6.37/ -o {{FUZZER_NAME}}.coverage -lm -lz -framework CoreFoundation -framework Security + mkdir -p {{ PROJECT_DIR }}/corpus + cp {{ PROJECT_DIR }}/libpng-1.6.37/contrib/testpngs/rgb-alpha-8.png {{ PROJECT_DIR }}/corpus/seed.png + {{ LIBAFL_CXX }} {{ PROJECT_DIR }}/harness.cc {{ CARGO_TARGET_DIR }}/{{ PROFILE_DIR }}/liblibfuzzer_libpng.a {{ PROJECT_DIR }}/libpng-1.6.37/.libs/libpng16.coverage.a -I {{ PROJECT_DIR }}/libpng-1.6.37/ -o {{ FUZZER_NAME }}.coverage -lm -lz -framework CoreFoundation -framework Security [windows] fuzzer: @@ -70,7 +69,7 @@ fuzzer: [linux] [macos] run: fuzzer - ./{{FUZZER_NAME}}.coverage --broker-port 21337 --cores 0 --input ./corpus + ./{{ FUZZER_NAME }}.coverage --broker-port 21337 --cores 0 --input ./corpus [windows] run: fuzzer @@ -82,7 +81,7 @@ test: fuzzer test-statsd test-tcp-fork test-tcp-no-fork test-tui test-all #!/bin/bash rm -rf libafl_unix_shmem_server || true echo "Testing default (no fork)..." - timeout 31s ./{{FUZZER_NAME}}.coverage --broker-port 21337 --cores 0 --input ./corpus 2>&1 | tee fuzz_stdout.log || true + timeout -k 35s 31s ./{{ FUZZER_NAME }}.coverage --broker-port 21337 --cores 0 --input ./corpus 2>&1 | tee fuzz_stdout.log || true if grep -qa "corpus: " fuzz_stdout.log; then echo "Fuzzer (no fork) is working" else @@ -93,7 +92,7 @@ test: fuzzer test-statsd test-tcp-fork test-tcp-no-fork test-tui test-all echo "Testing with fork..." rm -rf libafl_unix_shmem_server || true rm -rf out_fork || true - timeout 31s ./{{FUZZER_NAME}}.coverage --broker-port 21338 --cores 0 --input ./corpus --output ./out_fork --fork 2>&1 | tee fuzz_fork_stdout.log || true + timeout -k 35s 31s ./{{ FUZZER_NAME }}.coverage --broker-port 21338 --cores 0 --input ./corpus --output ./out_fork --fork 2>&1 | tee fuzz_fork_stdout.log || true if grep -qa "corpus: " fuzz_fork_stdout.log; then echo "Fuzzer (fork) is working" else @@ -106,7 +105,7 @@ test: fuzzer test-statsd test-tcp-fork test-tcp-no-fork test-tui test-all rm -rf out_fork_crash || true # Run with crash_after. It should crash and restart repeatedly. # We check if it still produces output/runs. - timeout 31s ./{{FUZZER_NAME}}.coverage --broker-port 21343 --cores 0 --input ./corpus --output ./out_fork_crash --fork --crash-after 100 2>&1 | tee fuzz_fork_crash_stdout.log || true + timeout -k 35s 31s ./{{ FUZZER_NAME }}.coverage --broker-port 21343 --cores 0 --input ./corpus --output ./out_fork_crash --fork --crash-after 100 2>&1 | tee fuzz_fork_crash_stdout.log || true # Check for objectives (crashes are recorded as objectives in the stats) # Note: forked child's stderr may not propagate, so we check stats output if grep -qa "objectives: [1-9]" fuzz_fork_crash_stdout.log; then @@ -150,30 +149,30 @@ test: fuzzer [linux] [macos] cxx-statsd: - cargo build --profile {{PROFILE}} --features statsd + cargo build --profile {{ PROFILE }} --features statsd [linux] fuzzer-statsd: lib cxx-statsd - {{LIBAFL_CXX}} {{PROJECT_DIR}}/harness.cc {{PROJECT_DIR}}/target/{{PROFILE_DIR}}/liblibfuzzer_libpng.a {{PROJECT_DIR}}/libpng-1.6.37/.libs/libpng16.coverage.a -I {{PROJECT_DIR}}/libpng-1.6.37/ -o {{FUZZER_NAME}}-statsd -lm -lz --libafl-ignore-configurations -Wl,--allow-multiple-definition + {{ LIBAFL_CXX }} {{ PROJECT_DIR }}/harness.cc {{ CARGO_TARGET_DIR }}/{{ PROFILE_DIR }}/liblibfuzzer_libpng.a {{ PROJECT_DIR }}/libpng-1.6.37/.libs/libpng16.coverage.a -I {{ PROJECT_DIR }}/libpng-1.6.37/ -o {{ FUZZER_NAME }}-statsd -lm -lz --libafl-ignore-configurations -Wl,--allow-multiple-definition [macos] fuzzer-statsd: lib cxx-statsd - {{LIBAFL_CXX}} {{PROJECT_DIR}}/harness.cc {{PROJECT_DIR}}/target/{{PROFILE_DIR}}/liblibfuzzer_libpng.a {{PROJECT_DIR}}/libpng-1.6.37/.libs/libpng16.coverage.a -I {{PROJECT_DIR}}/libpng-1.6.37/ -o {{FUZZER_NAME}}-statsd -lm -lz -framework CoreFoundation -framework Security --libafl-ignore-configurations + {{ LIBAFL_CXX }} {{ PROJECT_DIR }}/harness.cc {{ CARGO_TARGET_DIR }}/{{ PROFILE_DIR }}/liblibfuzzer_libpng.a {{ PROJECT_DIR }}/libpng-1.6.37/.libs/libpng16.coverage.a -I {{ PROJECT_DIR }}/libpng-1.6.37/ -o {{ FUZZER_NAME }}-statsd -lm -lz -framework CoreFoundation -framework Security --libafl-ignore-configurations [linux] [macos] cxx-tcp: - cargo build --profile {{PROFILE}} --features tcp_manager + cargo build --profile {{ PROFILE }} --features tcp_manager [linux] fuzzer-tcp: lib cxx-tcp - cp {{PROJECT_DIR}}/libpng-1.6.37/.libs/libpng16.coverage_ubsan.a {{PROJECT_DIR}}/libpng-1.6.37/.libs/libpng16.a - {{LIBAFL_CXX}} {{PROJECT_DIR}}/harness.cc -L {{PROJECT_DIR}}/target/{{PROFILE_DIR}} -llibfuzzer_libpng -Wl,--whole-archive {{PROJECT_DIR}}/libpng-1.6.37/.libs/libpng16.a -Wl,--no-whole-archive -I {{PROJECT_DIR}}/libpng-1.6.37/ -o {{FUZZER_NAME}}-tcp -lm -lz --libafl-ignore-configurations -Wl,--allow-multiple-definition -fsanitize=undefined + cp {{ PROJECT_DIR }}/libpng-1.6.37/.libs/libpng16.coverage_ubsan.a {{ PROJECT_DIR }}/libpng-1.6.37/.libs/libpng16.a + {{ LIBAFL_CXX }} {{ PROJECT_DIR }}/harness.cc -L {{ CARGO_TARGET_DIR }}/{{ PROFILE_DIR }} -llibfuzzer_libpng -Wl,--whole-archive {{ PROJECT_DIR }}/libpng-1.6.37/.libs/libpng16.a -Wl,--no-whole-archive -I {{ PROJECT_DIR }}/libpng-1.6.37/ -o {{ FUZZER_NAME }}-tcp -lm -lz --libafl-ignore-configurations -Wl,--allow-multiple-definition -fsanitize=undefined [macos] fuzzer-tcp: lib cxx-tcp - cp {{PROJECT_DIR}}/libpng-1.6.37/.libs/libpng16.coverage_ubsan.a {{PROJECT_DIR}}/libpng-1.6.37/.libs/libpng16.a - {{LIBAFL_CXX}} {{PROJECT_DIR}}/harness.cc -L {{PROJECT_DIR}}/target/{{PROFILE_DIR}} -llibfuzzer_libpng -Wl,-force_load,{{PROJECT_DIR}}/libpng-1.6.37/.libs/libpng16.a -I {{PROJECT_DIR}}/libpng-1.6.37/ -o {{FUZZER_NAME}}-tcp -lm -lz -framework CoreFoundation -framework Security --libafl-ignore-configurations -fsanitize=undefined + cp {{ PROJECT_DIR }}/libpng-1.6.37/.libs/libpng16.coverage_ubsan.a {{ PROJECT_DIR }}/libpng-1.6.37/.libs/libpng16.a + {{ LIBAFL_CXX }} {{ PROJECT_DIR }}/harness.cc -L {{ CARGO_TARGET_DIR }}/{{ PROFILE_DIR }} -llibfuzzer_libpng -Wl,-force_load,{{ PROJECT_DIR }}/libpng-1.6.37/.libs/libpng16.a -I {{ PROJECT_DIR }}/libpng-1.6.37/ -o {{ FUZZER_NAME }}-tcp -lm -lz -framework CoreFoundation -framework Security --libafl-ignore-configurations -fsanitize=undefined [linux] [macos] @@ -185,7 +184,7 @@ test-statsd: fuzzer-statsd python3 -c "import socket; s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM); s.bind(('127.0.0.1', 8126)); s.settimeout(125); d=s.recv(1024); print(d)" > statsd_out.log & LISTENER_PID=$! # Run fuzzer in background (timeout causes crash on macOS) - ./{{FUZZER_NAME}}-statsd --broker-port 21338 --cores 0 --input ./corpus --statsd --statsd-port 8126 > fuzzer_statsd.log 2>&1 & + ./{{ FUZZER_NAME }}-statsd --broker-port 21338 --cores 0 --input ./corpus --statsd --statsd-port 8126 > fuzzer_statsd.log 2>&1 & FUZZER_PID=$! # Wait for listener to potentially finish if it got data wait $LISTENER_PID || true @@ -198,7 +197,6 @@ test-statsd: fuzzer-statsd exit 1 fi - [linux] [macos] test-tcp-fork: fuzzer-tcp @@ -206,7 +204,7 @@ test-tcp-fork: fuzzer-tcp rm -rf libafl_unix_shmem_server || true echo "Testing with TCP (fork)..." rm -rf out_tcp_fork || true - timeout 31s ./{{FUZZER_NAME}}-tcp --broker-port 21340 --cores 0 --input ./corpus --output ./out_tcp_fork --tcp --fork > fuzz_tcp_fork.log 2>&1 || true + timeout -k 35s 31s ./{{ FUZZER_NAME }}-tcp --broker-port 21340 --cores 0 --input ./corpus --output ./out_tcp_fork --tcp --fork > fuzz_tcp_fork.log 2>&1 || true if grep -qa "corpus: " fuzz_tcp_fork.log; then echo "Fuzzer (TCP fork) is working" else @@ -221,7 +219,7 @@ test-tcp-no-fork: fuzzer-tcp rm -rf libafl_unix_shmem_server || true echo "Testing with TCP (no fork)..." rm -rf out_tcp_no_fork || true - timeout 31s ./{{FUZZER_NAME}}-tcp --broker-port 21341 --cores 0 --input ./corpus --output ./out_tcp_no_fork --tcp > fuzz_tcp_no_fork.log 2>&1 || true + timeout -k 35s 31s ./{{ FUZZER_NAME }}-tcp --broker-port 21341 --cores 0 --input ./corpus --output ./out_tcp_no_fork --tcp > fuzz_tcp_no_fork.log 2>&1 || true if grep -qa "corpus: " fuzz_tcp_no_fork.log; then echo "Fuzzer (TCP no fork) is working" else @@ -232,17 +230,17 @@ test-tcp-no-fork: fuzzer-tcp [linux] [macos] cxx-tui: - cargo build --profile {{PROFILE}} --features tui + cargo build --profile {{ PROFILE }} --features tui [linux] fuzzer-tui: lib cxx-tui - cp {{PROJECT_DIR}}/libpng-1.6.37/.libs/libpng16.coverage_ubsan.a {{PROJECT_DIR}}/libpng-1.6.37/.libs/libpng16.a - {{LIBAFL_CXX}} {{PROJECT_DIR}}/harness.cc -L {{PROJECT_DIR}}/target/{{PROFILE_DIR}} -llibfuzzer_libpng -Wl,--whole-archive {{PROJECT_DIR}}/libpng-1.6.37/.libs/libpng16.a -Wl,--no-whole-archive -I {{PROJECT_DIR}}/libpng-1.6.37/ -o {{FUZZER_NAME}}-tui -lm -lz --libafl-ignore-configurations -Wl,--allow-multiple-definition -fsanitize=undefined + cp {{ PROJECT_DIR }}/libpng-1.6.37/.libs/libpng16.coverage_ubsan.a {{ PROJECT_DIR }}/libpng-1.6.37/.libs/libpng16.a + {{ LIBAFL_CXX }} {{ PROJECT_DIR }}/harness.cc -L {{ CARGO_TARGET_DIR }}/{{ PROFILE_DIR }} -llibfuzzer_libpng -Wl,--whole-archive {{ PROJECT_DIR }}/libpng-1.6.37/.libs/libpng16.a -Wl,--no-whole-archive -I {{ PROJECT_DIR }}/libpng-1.6.37/ -o {{ FUZZER_NAME }}-tui -lm -lz --libafl-ignore-configurations -Wl,--allow-multiple-definition -fsanitize=undefined [macos] fuzzer-tui: lib cxx-tui - cp {{PROJECT_DIR}}/libpng-1.6.37/.libs/libpng16.coverage_ubsan.a {{PROJECT_DIR}}/libpng-1.6.37/.libs/libpng16.a - {{LIBAFL_CXX}} {{PROJECT_DIR}}/harness.cc -L {{PROJECT_DIR}}/target/{{PROFILE_DIR}} -llibfuzzer_libpng -Wl,-force_load,{{PROJECT_DIR}}/libpng-1.6.37/.libs/libpng16.a -I {{PROJECT_DIR}}/libpng-1.6.37/ -o {{FUZZER_NAME}}-tui -lm -lz -framework CoreFoundation -framework Security --libafl-ignore-configurations -fsanitize=undefined + cp {{ PROJECT_DIR }}/libpng-1.6.37/.libs/libpng16.coverage_ubsan.a {{ PROJECT_DIR }}/libpng-1.6.37/.libs/libpng16.a + {{ LIBAFL_CXX }} {{ PROJECT_DIR }}/harness.cc -L {{ CARGO_TARGET_DIR }}/{{ PROFILE_DIR }} -llibfuzzer_libpng -Wl,-force_load,{{ PROJECT_DIR }}/libpng-1.6.37/.libs/libpng16.a -I {{ PROJECT_DIR }}/libpng-1.6.37/ -o {{ FUZZER_NAME }}-tui -lm -lz -framework CoreFoundation -framework Security --libafl-ignore-configurations -fsanitize=undefined [linux] [macos] @@ -251,7 +249,7 @@ test-tui: fuzzer-tui rm -rf libafl_unix_shmem_server || true # Run fuzzer with TUI for a few seconds # verify it doesn't crash immediately - timeout 5s ./{{FUZZER_NAME}}-tui --broker-port 21344 --cores 0 --input ./corpus --tui > fuzzer_tui.log 2>&1 || true + timeout -k 10s 5s ./{{ FUZZER_NAME }}-tui --broker-port 21344 --cores 0 --input ./corpus --tui > fuzzer_tui.log 2>&1 || true if grep -q "panic" fuzzer_tui.log; then echo "Fuzzer panicked" cat fuzzer_tui.log @@ -259,21 +257,20 @@ test-tui: fuzzer-tui fi echo "TUI Fuzzer ran successfully (for 5s)" - [linux] [macos] cxx-all: - cargo build --profile {{PROFILE}} --features tui,tcp_manager,statsd + cargo build --profile {{ PROFILE }} --features tui,tcp_manager,statsd [linux] fuzzer-all: lib cxx-all - cp {{PROJECT_DIR}}/libpng-1.6.37/.libs/libpng16.coverage_ubsan.a {{PROJECT_DIR}}/libpng-1.6.37/.libs/libpng16.a - {{LIBAFL_CXX}} {{PROJECT_DIR}}/harness.cc -L {{PROJECT_DIR}}/target/{{PROFILE_DIR}} -llibfuzzer_libpng -Wl,--whole-archive {{PROJECT_DIR}}/libpng-1.6.37/.libs/libpng16.a -Wl,--no-whole-archive -I {{PROJECT_DIR}}/libpng-1.6.37/ -o {{FUZZER_NAME}}-all -lm -lz --libafl-ignore-configurations -Wl,--allow-multiple-definition -fsanitize=undefined + cp {{ PROJECT_DIR }}/libpng-1.6.37/.libs/libpng16.coverage_ubsan.a {{ PROJECT_DIR }}/libpng-1.6.37/.libs/libpng16.a + {{ LIBAFL_CXX }} {{ PROJECT_DIR }}/harness.cc -L {{ CARGO_TARGET_DIR }}/{{ PROFILE_DIR }} -llibfuzzer_libpng -Wl,--whole-archive {{ PROJECT_DIR }}/libpng-1.6.37/.libs/libpng16.a -Wl,--no-whole-archive -I {{ PROJECT_DIR }}/libpng-1.6.37/ -o {{ FUZZER_NAME }}-all -lm -lz --libafl-ignore-configurations -Wl,--allow-multiple-definition -fsanitize=undefined [macos] fuzzer-all: lib cxx-all - cp {{PROJECT_DIR}}/libpng-1.6.37/.libs/libpng16.coverage_ubsan.a {{PROJECT_DIR}}/libpng-1.6.37/.libs/libpng16.a - {{LIBAFL_CXX}} {{PROJECT_DIR}}/harness.cc -L {{PROJECT_DIR}}/target/{{PROFILE_DIR}} -llibfuzzer_libpng -Wl,-force_load,{{PROJECT_DIR}}/libpng-1.6.37/.libs/libpng16.a -I {{PROJECT_DIR}}/libpng-1.6.37/ -o {{FUZZER_NAME}}-all -lm -lz -framework CoreFoundation -framework Security --libafl-ignore-configurations -fsanitize=undefined + cp {{ PROJECT_DIR }}/libpng-1.6.37/.libs/libpng16.coverage_ubsan.a {{ PROJECT_DIR }}/libpng-1.6.37/.libs/libpng16.a + {{ LIBAFL_CXX }} {{ PROJECT_DIR }}/harness.cc {{ CARGO_TARGET_DIR }}/{{ PROFILE_DIR }}/liblibfuzzer_libpng.a {{ PROJECT_DIR }}/libpng-1.6.37/.libs/libpng16.coverage.a -I {{ PROJECT_DIR }}/libpng-1.6.37/ -o {{ FUZZER_NAME }}-all -lm -lz -framework CoreFoundation -framework Security --libafl-ignore-configurations -fsanitize=undefined [linux] [macos] @@ -282,7 +279,7 @@ test-all: fuzzer-all rm -rf libafl_unix_shmem_server || true echo "Testing all features (TCP mode)..." rm -rf out_all_tcp || true - timeout 20s ./{{FUZZER_NAME}}-all --broker-port 21350 --cores 0 --input ./corpus --output ./out_all_tcp --tcp > fuzzer_all_tcp.log 2>&1 || true + timeout -k 25s 20s ./{{ FUZZER_NAME }}-all --broker-port 21350 --cores 0 --input ./corpus --output ./out_all_tcp --tcp > fuzzer_all_tcp.log 2>&1 || true if grep -qa "corpus: " fuzzer_all_tcp.log; then echo "Fuzzer (All+TCP) is working" else @@ -291,7 +288,7 @@ test-all: fuzzer-all fi rm -rf libafl_unix_shmem_server || true echo "Testing all features (TUI mode)..." - timeout 5s ./{{FUZZER_NAME}}-all --broker-port 21351 --cores 0 --input ./corpus --tui > fuzzer_all_tui.log 2>&1 || true + timeout -k 10s 5s ./{{ FUZZER_NAME }}-all --broker-port 21351 --cores 0 --input ./corpus --tui > fuzzer_all_tui.log 2>&1 || true if grep -q "panic" fuzzer_all_tui.log; then echo "Fuzzer (All+TUI) panicked" cat fuzzer_all_tui.log @@ -299,8 +296,7 @@ test-all: fuzzer-all fi echo "Fuzzer (All+TUI) ran successfully" - clean: - rm -rf {{FUZZER_NAME}}.coverage + rm -rf {{ FUZZER_NAME }}.coverage make -C libpng-1.6.37 clean || true cargo clean diff --git a/fuzzers/inprocess/libfuzzer_libpng_norestart/Justfile b/fuzzers/inprocess/libfuzzer_libpng_norestart/Justfile index e693a149ae5..6cb2e383e62 100644 --- a/fuzzers/inprocess/libfuzzer_libpng_norestart/Justfile +++ b/fuzzers/inprocess/libfuzzer_libpng_norestart/Justfile @@ -3,10 +3,9 @@ PROJECT_DIR := absolute_path(".") PROFILE := env("PROFILE", "release") PROFILE_DIR := if PROFILE == "release" { "release" } else if PROFILE == "dev" { "debug" } else { "debug" } CARGO_TARGET_DIR := env("CARGO_TARGET_DIR", "target") -FUZZER := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / FUZZER_NAME -LIBAFL_CC := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cc" -LIBAFL_CXX := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cxx" - +FUZZER := CARGO_TARGET_DIR / PROFILE_DIR / FUZZER_NAME +LIBAFL_CC := CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cc" +LIBAFL_CXX := CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cxx" alias cc := cxx @@ -26,7 +25,7 @@ libpng: [linux] [macos] cxx: - cargo build --profile {{PROFILE}} + cargo build --profile {{ PROFILE }} [windows] cxx: @@ -35,7 +34,7 @@ cxx: [linux] [macos] crash_cxx: - cargo build --profile {{PROFILE}} --features=crash + cargo build --profile {{ PROFILE }} --features=crash [windows] crash_cxx: @@ -46,8 +45,8 @@ crash_cxx: lib: libpng cxx #!/bin/bash cd libpng-1.6.37 && ./configure --enable-shared=no --with-pic=yes --enable-hardware-optimizations=yes - cd {{PROJECT_DIR}} - make -C libpng-1.6.37 CC="{{LIBAFL_CC}}" CXX="{{LIBAFL_CXX}}" + cd {{ PROJECT_DIR }} + make -C libpng-1.6.37 CC="{{ LIBAFL_CC }}" CXX="{{ LIBAFL_CXX }}" [windows] lib: @@ -58,8 +57,8 @@ lib: crash_lib: libpng crash_cxx #!/bin/bash cd libpng-1.6.37 && ./configure --enable-shared=no --with-pic=yes --enable-hardware-optimizations=yes - cd {{PROJECT_DIR}} - make -C libpng-1.6.37 CC="{{LIBAFL_CC}}" CXX="{{LIBAFL_CXX}}" + cd {{ PROJECT_DIR }} + make -C libpng-1.6.37 CC="{{ LIBAFL_CC }}" CXX="{{ LIBAFL_CXX }}" [windows] crash_lib: @@ -68,7 +67,7 @@ crash_lib: [linux] [macos] fuzzer: lib cxx - {{LIBAFL_CXX}} {{PROJECT_DIR}}/harness.cc {{PROJECT_DIR}}/libpng-1.6.37/.libs/libpng16.a -I {{PROJECT_DIR}}/libpng-1.6.37/ -o {{FUZZER_NAME}} -lm -lz + {{ LIBAFL_CXX }} {{ PROJECT_DIR }}/harness.cc {{ PROJECT_DIR }}/libpng-1.6.37/.libs/libpng16.a -I {{ PROJECT_DIR }}/libpng-1.6.37/ -o {{ FUZZER_NAME }} -lm -lz [windows] fuzzer: @@ -77,18 +76,17 @@ fuzzer: [linux] [macos] crash_fuzzer: crash_lib crash_cxx - {{LIBAFL_CXX}} {{PROJECT_DIR}}/harness.cc {{PROJECT_DIR}}/libpng-1.6.37/.libs/libpng16.a -I {{PROJECT_DIR}}/libpng-1.6.37/ -o {{FUZZER_NAME}} -lm -lz + {{ LIBAFL_CXX }} {{ PROJECT_DIR }}/harness.cc {{ PROJECT_DIR }}/libpng-1.6.37/.libs/libpng16.a -I {{ PROJECT_DIR }}/libpng-1.6.37/ -o {{ FUZZER_NAME }} -lm -lz [windows] crash_fuzzer: echo "Unsupported on this platform" - [linux] [macos] run: fuzzer #!/bin/bash - ./{{FUZZER_NAME}} --cores 0 --input ./corpus + ./{{ FUZZER_NAME }} --cores 0 --input ./corpus [windows] run: fuzzer @@ -98,19 +96,18 @@ run: fuzzer [macos] crash: crash_fuzzer #!/bin/bash - ./{{FUZZER_NAME}} --cores 0 --input ./corpus + ./{{ FUZZER_NAME }} --cores 0 --input ./corpus [windows] crash: fuzzer echo "Unsupported on this platform" - [linux] [macos] test: fuzzer #!/bin/bash rm -rf libafl_unix_shmem_server || true - timeout 31s ./{{FUZZER_NAME}} --cores 0 --input ./corpus 2>/dev/null | tee fuzz_stdout.log || true + timeout 31s ./{{ FUZZER_NAME }} --cores 0 --input ./corpus 2>/dev/null | tee fuzz_stdout.log || true if grep -qa "corpus: 30" fuzz_stdout.log; then echo "Fuzzer is working" else @@ -123,7 +120,6 @@ test: fuzzer echo "Unsupported on this platform" clean: - rm -rf {{FUZZER_NAME}} + rm -rf {{ FUZZER_NAME }} make -C libpng-1.6.37 clean || true cargo clean - diff --git a/fuzzers/inprocess/libfuzzer_libpng_tcp_manager/Justfile b/fuzzers/inprocess/libfuzzer_libpng_tcp_manager/Justfile index 5e14bd2759a..c82f1165bc7 100644 --- a/fuzzers/inprocess/libfuzzer_libpng_tcp_manager/Justfile +++ b/fuzzers/inprocess/libfuzzer_libpng_tcp_manager/Justfile @@ -3,10 +3,9 @@ PROJECT_DIR := absolute_path(".") PROFILE := env("PROFILE", "release") PROFILE_DIR := if PROFILE == "release" { "release" } else if PROFILE == "dev" { "debug" } else { "debug" } CARGO_TARGET_DIR := env("CARGO_TARGET_DIR", "target") -FUZZER := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / FUZZER_NAME -LIBAFL_CC := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cc" -LIBAFL_CXX := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cxx" - +FUZZER := CARGO_TARGET_DIR / PROFILE_DIR / FUZZER_NAME +LIBAFL_CC := CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cc" +LIBAFL_CXX := CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cxx" alias cc := cxx @@ -26,7 +25,7 @@ libpng: [linux] [macos] cxx: - cargo build --profile {{PROFILE}} + cargo build --profile {{ PROFILE }} [windows] cxx: @@ -37,8 +36,8 @@ cxx: lib: libpng cxx #!/bin/bash cd libpng-1.6.37 && ./configure --enable-shared=no --with-pic=yes --enable-hardware-optimizations=yes - cd {{PROJECT_DIR}} - make -C libpng-1.6.37 CC="{{LIBAFL_CC}}" CXX="{{LIBAFL_CXX}}" + cd {{ PROJECT_DIR }} + make -C libpng-1.6.37 CC="{{ LIBAFL_CC }}" CXX="{{ LIBAFL_CXX }}" [windows] lib: @@ -47,7 +46,7 @@ lib: [linux] [macos] fuzzer: lib cxx - {{LIBAFL_CXX}} {{PROJECT_DIR}}/harness.cc {{PROJECT_DIR}}/target/{{PROFILE_DIR}}/liblibfuzzer_libpng.a {{PROJECT_DIR}}/libpng-1.6.37/.libs/libpng16.a -I {{PROJECT_DIR}}/libpng-1.6.37/ -o {{FUZZER_NAME}} -lm -lz -Wl,--allow-multiple-definition + {{ LIBAFL_CXX }} {{ PROJECT_DIR }}/harness.cc {{ PROJECT_DIR }}/target/{{ PROFILE_DIR }}/liblibfuzzer_libpng.a {{ PROJECT_DIR }}/libpng-1.6.37/.libs/libpng16.a -I {{ PROJECT_DIR }}/libpng-1.6.37/ -o {{ FUZZER_NAME }} -lm -lz -Wl,--allow-multiple-definition [windows] fuzzer: @@ -56,7 +55,7 @@ fuzzer: [linux] [macos] run: fuzzer - ./{{FUZZER_NAME}} --cores 0-1 --input ./corpus + ./{{ FUZZER_NAME }} --cores 0-1 --input ./corpus [windows] run: fuzzer @@ -67,7 +66,7 @@ run: fuzzer test: fuzzer #!/bin/bash rm -rf libafl_unix_shmem_server || true - timeout 31s ./{{FUZZER_NAME}} --cores 0-1 --input ./corpus | tee fuzz_stdout.log || true + timeout 31s ./{{ FUZZER_NAME }} --cores 0-1 --input ./corpus | tee fuzz_stdout.log || true if grep -qa "corpus: 30" fuzz_stdout.log; then echo "Fuzzer is working" else @@ -80,7 +79,6 @@ test: fuzzer echo "Unsupported on this platform" clean: - rm -rf {{FUZZER_NAME}} + rm -rf {{ FUZZER_NAME }} make -C libpng-1.6.37 clean || true cargo clean - diff --git a/fuzzers/inprocess/libfuzzer_stb_image/Justfile b/fuzzers/inprocess/libfuzzer_stb_image/Justfile index 38d508d1e97..5e2e4559d66 100644 --- a/fuzzers/inprocess/libfuzzer_stb_image/Justfile +++ b/fuzzers/inprocess/libfuzzer_stb_image/Justfile @@ -3,30 +3,30 @@ PROJECT_DIR := absolute_path(".") CARGO_TARGET_DIR := env("CARGO_TARGET_DIR", "target") PROFILE := env("PROFILE", "dev") PROFILE_DIR := if PROFILE == "release" { "release" } else if PROFILE == "dev" { "debug" } else { "debug" } +EXTENSION := if os() == "windows" { ".exe" } else { "" } +LIBAFL_CC := CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cc" + EXTENSION +LIBAFL_CXX := CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cxx" + EXTENSION +FUZZER := CARGO_TARGET_DIR / PROFILE_DIR / FUZZER_NAME + EXTENSION -EXTENSION := if os() == "windows" {".exe"} else { "" } -LIBAFL_CC := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cc" + EXTENSION -LIBAFL_CXX := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cxx" + EXTENSION -FUZZER := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / FUZZER_NAME + EXTENSION set windows-shell := ['cmd.exe', '/c'] -set unstable +set unstable := true alias cc := cxx cxx: - cargo build --profile {{PROFILE}} + cargo build --profile {{ PROFILE }} fuzzer: cxx #!/bin/bash - cargo build --profile {{PROFILE}} - {{LIBAFL_CC}} -o ./{{FUZZER_NAME}} harness.cc + cargo build --profile {{ PROFILE }} + {{ LIBAFL_CC }} -o ./{{ FUZZER_NAME }} harness.cc [linux] [macos] run: fuzzer #!/bin/bash - ./{{FUZZER_NAME}} & - ./{{FUZZER_NAME}} + ./{{ FUZZER_NAME }} & + ./{{ FUZZER_NAME }} sleep 0.2 [windows] @@ -38,9 +38,9 @@ run: fuzzer test: fuzzer #!/bin/bash rm -rf libafl_unix_shmem_server || true - (timeout 31s ./{{FUZZER_NAME}} | tee fuzz_stdout.log 2>/dev/null || true) & + (timeout 31s ./{{ FUZZER_NAME }} | tee fuzz_stdout.log 2>/dev/null || true) & sleep 0.2 - timeout 30s ./{{FUZZER_NAME}} >/dev/null 2>/dev/null || true + timeout 30s ./{{ FUZZER_NAME }} >/dev/null 2>/dev/null || true if grep -qa "corpus: 30" fuzz_stdout.log; then echo "Fuzzer is working" else @@ -48,12 +48,12 @@ test: fuzzer exit 1 fi -[windows] [script("cmd.exe", "/c")] +[windows] test: cargo build --release clean: #!/bin/bash - rm -f {{FUZZER_NAME}} + rm -f {{ FUZZER_NAME }} cargo clean diff --git a/fuzzers/inprocess/libfuzzer_stb_image_sugar/Justfile b/fuzzers/inprocess/libfuzzer_stb_image_sugar/Justfile index 720177abf25..090ba5f418f 100644 --- a/fuzzers/inprocess/libfuzzer_stb_image_sugar/Justfile +++ b/fuzzers/inprocess/libfuzzer_stb_image_sugar/Justfile @@ -3,28 +3,26 @@ PROJECT_DIR := absolute_path(".") CARGO_TARGET_DIR := env("CARGO_TARGET_DIR", "target") PROFILE := env("PROFILE", "release") PROFILE_DIR := if PROFILE == "release" { "release" } else if PROFILE == "dev" { "debug" } else { "debug" } - -EXTENSION := if os() == "windows" {".exe"} else { "" } -LIBAFL_CC := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cc" + EXTENSION -LIBAFL_CXX := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cxx" + EXTENSION - -FUZZER := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / FUZZER_NAME + EXTENSION +EXTENSION := if os() == "windows" { ".exe" } else { "" } +LIBAFL_CC := CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cc" + EXTENSION +LIBAFL_CXX := CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cxx" + EXTENSION +FUZZER := CARGO_TARGET_DIR / PROFILE_DIR / FUZZER_NAME + EXTENSION alias cc := cxx cxx: - cargo build --profile {{PROFILE}} + cargo build --profile {{ PROFILE }} fuzzer: cxx #!/bin/bash - cargo build --profile {{PROFILE}} - {{LIBAFL_CC}} -o ./{{FUZZER_NAME}} harness.c -lglib-2.0 -lgio-2.0 -lgmodule-2.0 + cargo build --profile {{ PROFILE }} + {{ LIBAFL_CC }} -o ./{{ FUZZER_NAME }} harness.c -lglib-2.0 -lgio-2.0 -lgmodule-2.0 [linux] [macos] run: fuzzer #!/bin/bash - ./{{FUZZER_NAME}} & + ./{{ FUZZER_NAME }} & sleep 0.2 [windows] @@ -37,7 +35,7 @@ test: fuzzer #!/bin/bash success=0 rm -rf libafl_unix_shmem_server || true - timeout 5s ./{{FUZZER_NAME}} >fuzz_stdout.log + timeout 5s ./{{ FUZZER_NAME }} >fuzz_stdout.log while read -r line; do corpus_number=$(echo "$line" | cut -d' ' -f2) if (( corpus_number > 50 )); then @@ -52,8 +50,8 @@ test: fuzzer echo "Fuzzer not working!" exit 1 fi - + clean: #!/bin/bash - rm -f {{FUZZER_NAME}} + rm -f {{ FUZZER_NAME }} cargo clean diff --git a/fuzzers/structure_aware/libfuzzer_stb_image_concolic/Justfile b/fuzzers/structure_aware/libfuzzer_stb_image_concolic/Justfile index e8181fb2176..8baf4efc37d 100644 --- a/fuzzers/structure_aware/libfuzzer_stb_image_concolic/Justfile +++ b/fuzzers/structure_aware/libfuzzer_stb_image_concolic/Justfile @@ -56,8 +56,8 @@ test-concolic: build-fuzzer @# Run with a timeout and tee output to a log file. @# Ensure LD_LIBRARY_PATH includes runtime for libSymRuntime.so export LD_LIBRARY_PATH=$(pwd)/runtime:$LD_LIBRARY_PATH - @# Build with no-restart feature for testing stability - @cargo build --manifest-path fuzzer/Cargo.toml + @# Build with default features (restarting enabled) + @cargo build --manifest-path fuzzer/Cargo.toml --features std @# 30 seconds should be enough to find something timeout -s SIGINT 30s ./fuzzer/target/debug/libfuzzer_stb_image_concolic --concolic > concolic_test.log 2>&1 || true @# Check if we found any new paths (corpus > 1) diff --git a/fuzzers/structure_aware/libfuzzer_stb_image_concolic/fuzzer/Cargo.lock b/fuzzers/structure_aware/libfuzzer_stb_image_concolic/fuzzer/Cargo.lock index 2651c934136..a4f554b5ffb 100644 --- a/fuzzers/structure_aware/libfuzzer_stb_image_concolic/fuzzer/Cargo.lock +++ b/fuzzers/structure_aware/libfuzzer_stb_image_concolic/fuzzer/Cargo.lock @@ -106,6 +106,12 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c858caffa49edfc4ecc45a4bec37abd3e88041a2903816f10f990b7b41abc281" +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + [[package]] name = "autocfg" version = "1.5.0" @@ -127,6 +133,12 @@ dependencies = [ "windows-link", ] +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + [[package]] name = "bincode" version = "2.0.1" @@ -206,11 +218,17 @@ version = "1.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" +[[package]] +name = "bytes" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" + [[package]] name = "cc" -version = "1.2.49" +version = "1.2.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90583009037521a116abf44494efecd645ba48b6622457080f080b85544e2215" +checksum = "7a0aeaff4ff1a90589618835a598e545176939b97874f7abc7851caa0618f203" dependencies = [ "find-msvc-tools", "jobserver", @@ -370,6 +388,17 @@ version = "0.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52560adf09603e58c9a7ee1fe1dcb95a16927b17c127f0ac02d6e768a0e25bc1" +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "dtor" version = "0.1.1" @@ -465,16 +494,16 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18c1ddb9231d8554c2d6bdf4cfaabf0c59251658c68b6c95cd52dd0c513a912a" dependencies = [ - "getrandom", + "getrandom 0.3.4", "libm", "siphasher", ] [[package]] name = "find-msvc-tools" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844" +checksum = "645cbb3a84e60b7531617d5ae4e57f7e27308f6445f5abf653209ea76dec8dff" [[package]] name = "foldhash" @@ -482,6 +511,15 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" +[[package]] +name = "form_urlencoded" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" +dependencies = [ + "percent-encoding", +] + [[package]] name = "fs2" version = "0.4.3" @@ -492,6 +530,69 @@ dependencies = [ "winapi", ] +[[package]] +name = "futures-channel" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" + +[[package]] +name = "futures-io" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" + +[[package]] +name = "futures-sink" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" + +[[package]] +name = "futures-task" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" + +[[package]] +name = "futures-util" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +dependencies = [ + "futures-core", + "futures-io", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "getrandom" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi", + "wasm-bindgen", +] + [[package]] name = "getrandom" version = "0.3.4" @@ -499,9 +600,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", + "js-sys", "libc", "r-efi", "wasip2", + "wasm-bindgen", ] [[package]] @@ -555,6 +658,225 @@ dependencies = [ "windows-link", ] +[[package]] +name = "http" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" +dependencies = [ + "bytes", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "hyper" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11" +dependencies = [ + "atomic-waker", + "bytes", + "futures-channel", + "futures-core", + "http", + "http-body", + "httparse", + "itoa", + "pin-project-lite", + "pin-utils", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.27.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" +dependencies = [ + "http", + "hyper", + "hyper-util", + "rustls", + "rustls-pki-types", + "tokio", + "tokio-rustls", + "tower-service", + "webpki-roots", +] + +[[package]] +name = "hyper-util" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "727805d60e7938b76b826a6ef209eb70eaa1812794f9424d4a4e2d740662df5f" +dependencies = [ + "base64", + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "http", + "http-body", + "hyper", + "ipnet", + "libc", + "percent-encoding", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", +] + +[[package]] +name = "icu_collections" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" +dependencies = [ + "displaydoc", + "potential_utf", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locale_core" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_normalizer" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" +dependencies = [ + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" + +[[package]] +name = "icu_properties" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" +dependencies = [ + "icu_collections", + "icu_locale_core", + "icu_properties_data", + "icu_provider", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" + +[[package]] +name = "icu_provider" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" +dependencies = [ + "displaydoc", + "icu_locale_core", + "writeable", + "yoke", + "zerofrom", + "zerotrie", + "zerovec", +] + +[[package]] +name = "idna" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "ipnet" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" + +[[package]] +name = "iri-string" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c91338f0783edbd6195decb37bae672fd3b165faffb89bf7b9e6942f8b1a731a" +dependencies = [ + "memchr", + "serde", +] + [[package]] name = "is_terminal_polyfill" version = "1.70.2" @@ -582,7 +904,7 @@ version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" dependencies = [ - "getrandom", + "getrandom 0.3.4", "libc", ] @@ -660,6 +982,7 @@ dependencies = [ "miniz_oxide", "nix", "no_std_time", + "nonzero_macros", "num_enum", "ownedref", "postcard", @@ -686,6 +1009,7 @@ version = "0.16.0" dependencies = [ "backtrace", "nix", + "nonzero_macros", "postcard", "rustversion", "serde", @@ -782,6 +1106,12 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" +[[package]] +name = "litemap" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" + [[package]] name = "ll_mp" version = "0.16.0" @@ -816,6 +1146,12 @@ version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" +[[package]] +name = "lru-slab" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" + [[package]] name = "mach2" version = "0.6.0" @@ -882,6 +1218,17 @@ dependencies = [ "adler2", ] +[[package]] +name = "mio" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" +dependencies = [ + "libc", + "wasi", + "windows-sys 0.61.2", +] + [[package]] name = "nix" version = "0.30.1" @@ -912,6 +1259,10 @@ dependencies = [ "minimal-lexical", ] +[[package]] +name = "nonzero_macros" +version = "0.16.0" + [[package]] name = "num" version = "0.4.3" @@ -1059,6 +1410,24 @@ dependencies = [ "windows-link", ] +[[package]] +name = "percent-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + +[[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + [[package]] name = "pkg-config" version = "0.3.32" @@ -1077,6 +1446,24 @@ dependencies = [ "serde", ] +[[package]] +name = "potential_utf" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" +dependencies = [ + "zerovec", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] + [[package]] name = "prettyplease" version = "0.2.37" @@ -1089,13 +1476,68 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.103" +version = "1.0.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" +checksum = "535d180e0ecab6268a3e718bb9fd44db66bbbc256257165fc699dadf70d16fe7" dependencies = [ "unicode-ident", ] +[[package]] +name = "quinn" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" +dependencies = [ + "bytes", + "cfg_aliases", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls", + "socket2", + "thiserror", + "tokio", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-proto" +version = "0.11.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" +dependencies = [ + "bytes", + "getrandom 0.3.4", + "lru-slab", + "rand", + "ring", + "rustc-hash", + "rustls", + "rustls-pki-types", + "slab", + "thiserror", + "tinyvec", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-udp" +version = "0.5.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" +dependencies = [ + "cfg_aliases", + "libc", + "once_cell", + "socket2", + "tracing", + "windows-sys 0.59.0", +] + [[package]] name = "quote" version = "1.0.42" @@ -1111,17 +1553,40 @@ version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" +[[package]] +name = "rand" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" +dependencies = [ + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core", +] + [[package]] name = "rand_core" version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +dependencies = [ + "getrandom 0.3.4", +] [[package]] name = "rangemap" -version = "1.7.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbbbbea733ec66275512d0b9694f34102e7d5406fdbe2ad8d21b28dce92887c" +checksum = "973443cf09a9c8656b574a866ab68dfa19f0867d0340648c7d2f6a71b8a8ea68" [[package]] name = "redox_syscall" @@ -1161,6 +1626,60 @@ version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" +[[package]] +name = "reqwest" +version = "0.12.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" +dependencies = [ + "base64", + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-rustls", + "hyper-util", + "js-sys", + "log", + "percent-encoding", + "pin-project-lite", + "quinn", + "rustls", + "rustls-pki-types", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tokio-rustls", + "tower", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "webpki-roots", +] + +[[package]] +name = "ring" +version = "0.17.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.16", + "libc", + "untrusted", + "windows-sys 0.52.0", +] + [[package]] name = "rustc-demangle" version = "0.1.26" @@ -1200,11 +1719,46 @@ dependencies = [ ] [[package]] -name = "rustversion" -version = "1.0.22" +name = "rustls" +version = "0.23.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" - +checksum = "c665f33d38cea657d9614f766881e4d510e0eda4239891eea56b4cadcf01801b" +dependencies = [ + "once_cell", + "ring", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-pki-types" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21e6f2ab2928ca4291b86736a8bd920a277a399bba1589409d72154ff87c1282" +dependencies = [ + "web-time", + "zeroize", +] + +[[package]] +name = "rustls-webpki" +version = "0.103.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ffdfa2f5286e2247234e03f680868ac2815974dc39e00ea15adc445d0aafe52" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] + +[[package]] +name = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + [[package]] name = "ryu" version = "1.0.20" @@ -1288,15 +1842,27 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.145" +version = "1.0.148" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" +checksum = "3084b546a1dd6289475996f182a22aba973866ea8e8b02c51d9f46b1336a22da" dependencies = [ "itoa", "memchr", - "ryu", "serde", "serde_core", + "zmij", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", ] [[package]] @@ -1354,12 +1920,34 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" +[[package]] +name = "slab" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" + [[package]] name = "smallvec" version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" +[[package]] +name = "socket2" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" +dependencies = [ + "libc", + "windows-sys 0.60.2", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" + [[package]] name = "static_assertions" version = "1.1.0" @@ -1372,6 +1960,12 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + [[package]] name = "symcc_libafl" version = "0.16.0" @@ -1383,15 +1977,35 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.111" +version = "2.0.113" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87" +checksum = "678faa00651c9eb72dd2020cbdf275d92eccb2400d568e419efdd64838145cb4" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] +[[package]] +name = "sync_wrapper" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", +] + +[[package]] +name = "synstructure" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "thiserror" version = "2.0.17" @@ -1412,6 +2026,125 @@ dependencies = [ "syn", ] +[[package]] +name = "tinystr" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinyvec" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.49.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86" +dependencies = [ + "bytes", + "libc", + "mio", + "pin-project-lite", + "socket2", + "windows-sys 0.61.2", +] + +[[package]] +name = "tokio-rustls" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" +dependencies = [ + "rustls", + "tokio", +] + +[[package]] +name = "tower" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper", + "tokio", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-http" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" +dependencies = [ + "bitflags", + "bytes", + "futures-util", + "http", + "http-body", + "iri-string", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" +dependencies = [ + "pin-project-lite", + "tracing-core", +] + +[[package]] +name = "tracing-core" +version = "0.1.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" +dependencies = [ + "once_cell", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + [[package]] name = "tuple_list" version = "0.1.3" @@ -1483,12 +2216,36 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + [[package]] name = "unty" version = "0.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae" +[[package]] +name = "url" +version = "2.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", +] + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + [[package]] name = "utf8parse" version = "0.2.2" @@ -1501,7 +2258,7 @@ version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2e054861b4bd027cd373e18e8d8d8e6548085000e41290d95ce0c373a654b4a" dependencies = [ - "getrandom", + "getrandom 0.3.4", "js-sys", "serde_core", "wasm-bindgen", @@ -1528,6 +2285,21 @@ dependencies = [ "libc", ] +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + [[package]] name = "wasip2" version = "1.0.1+wasi-0.2.4" @@ -1550,6 +2322,19 @@ dependencies = [ "wasm-bindgen-shared", ] +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.56" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "836d9622d604feee9e5de25ac10e3ea5f2d65b41eac0d9ce72eb5deae707ce7c" +dependencies = [ + "cfg-if", + "js-sys", + "once_cell", + "wasm-bindgen", + "web-sys", +] + [[package]] name = "wasm-bindgen-macro" version = "0.2.106" @@ -1582,6 +2367,35 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "web-sys" +version = "0.3.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b32828d774c412041098d182a8b38b16ea816958e07cf40eec2bc080ae137ac" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki-roots" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12bed680863276c63889429bfd6cab3b99943659923822de1c8a39c49e4d722c" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "which" version = "6.0.3" @@ -1607,9 +2421,9 @@ dependencies = [ [[package]] name = "wide" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afd0e867c652e7c27e88620e1fbf073ad060a919235f50b64f273d9d4092931" +checksum = "ac11b009ebeae802ed758530b6496784ebfee7a87b9abfbcaf3bbe25b814eb25" dependencies = [ "bytemuck", "safe_arch", @@ -1738,13 +2552,31 @@ dependencies = [ "windows-link", ] +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + [[package]] name = "windows-sys" version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ - "windows-targets", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.5", ] [[package]] @@ -1762,14 +2594,31 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_gnullvm", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm 0.52.6", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.53.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" +dependencies = [ + "windows-link", + "windows_aarch64_gnullvm 0.53.1", + "windows_aarch64_msvc 0.53.1", + "windows_i686_gnu 0.53.1", + "windows_i686_gnullvm 0.53.1", + "windows_i686_msvc 0.53.1", + "windows_x86_64_gnu 0.53.1", + "windows_x86_64_gnullvm 0.53.1", + "windows_x86_64_msvc 0.53.1", ] [[package]] @@ -1787,48 +2636,96 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" + [[package]] name = "windows_aarch64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" + [[package]] name = "windows_i686_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" +[[package]] +name = "windows_i686_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" + [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" + [[package]] name = "windows_i686_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" +[[package]] +name = "windows_i686_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" + [[package]] name = "windows_x86_64_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" + [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" + [[package]] name = "windows_x86_64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" + [[package]] name = "winsafe" version = "0.0.19" @@ -1841,17 +2738,46 @@ version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" +[[package]] +name = "writeable" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" + [[package]] name = "xxhash-rust" version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdd20c5420375476fbd4394763288da7eb0cc0b8c11deed431a91562af7335d3" +[[package]] +name = "yoke" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" +dependencies = [ + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + [[package]] name = "z3" -version = "0.19.6" +version = "0.19.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2f393c9bc12e0a32ce65e9a0cbec296df1c7f506291db5b8237e7a9a1cc9ebe" +checksum = "ea19bb0f83371b3279afd962fd5c6525024459615598ad328eb24d1713e28dd9" dependencies = [ "log", "num", @@ -1860,12 +2786,13 @@ dependencies = [ [[package]] name = "z3-sys" -version = "0.10.3" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3940bd12746da62352129e4bf4087fd360919b1bb0b88c59550b9761199b04ae" +checksum = "b18a464a6d3c31e6684906ca12e53c095ff625cd21fcbe09271a3aacb56a96f1" dependencies = [ "bindgen", "pkg-config", + "reqwest", ] [[package]] @@ -1887,3 +2814,69 @@ dependencies = [ "quote", "syn", ] + +[[package]] +name = "zerofrom" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zeroize" +version = "1.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" + +[[package]] +name = "zerotrie" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + +[[package]] +name = "zerovec" +version = "0.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zmij" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fc5a66a20078bf1251bde995aa2fdcc4b800c70b5d92dd2c62abc5c60f679f8" diff --git a/fuzzers/structure_aware/nautilus_sync/Justfile b/fuzzers/structure_aware/nautilus_sync/Justfile index 75a67058d53..03d8e421b52 100644 --- a/fuzzers/structure_aware/nautilus_sync/Justfile +++ b/fuzzers/structure_aware/nautilus_sync/Justfile @@ -3,9 +3,9 @@ PROJECT_DIR := absolute_path(".") PROFILE := env("PROFILE", "release") PROFILE_DIR := if PROFILE == "release" { "release" } else if PROFILE == "dev" { "debug" } else { "debug" } CARGO_TARGET_DIR := env("CARGO_TARGET_DIR", "target") -FUZZER := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / FUZZER_NAME -LIBAFL_CC := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cc" -LIBAFL_CXX := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cxx" +FUZZER := CARGO_TARGET_DIR / PROFILE_DIR / FUZZER_NAME +LIBAFL_CC := CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cc" +LIBAFL_CXX := CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cxx" alias cc := cxx diff --git a/scripts/doc_all.py b/scripts/doc_all.py new file mode 100755 index 00000000000..25df2ab41f3 --- /dev/null +++ b/scripts/doc_all.py @@ -0,0 +1,73 @@ +#!/usr/bin/env python3 +import os +import subprocess +import sys + + +def run_docs(root_dir): + print(f"Searching for Justfiles in {root_dir}...") + for dirpath, _, filenames in os.walk(root_dir): + if "Justfile" in filenames: + justfile_path = os.path.join(dirpath, "Justfile") + # Check if 'doc' recipe exists + try: + # We use just --list to check for the recipe to avoid parsing + # We use shell=False for security, but on Windows just might need shell=True if it's a batch file? + # 'just' is usually an exe. + result = subprocess.run( + ["just", "-f", justfile_path, "--list"], + capture_output=True, + text=True, + check=True, + ) + + # Parse just --list output + has_doc = False + for line in result.stdout.splitlines(): + stripped = line.strip() + # Check for 'doc' recipe (exact match or followed by space/colon) + # just --list output format: " recipe # comment" + if stripped.startswith("doc") and ( + len(stripped) == 3 or stripped[3] == " " or stripped[3] == ":" + ): + has_doc = True + break + + if has_doc: + print(f"Building docs in {dirpath} (via just)") + subprocess.run(["just", "-f", justfile_path, "doc"], check=True) + else: + print(f"Building docs in {dirpath} (via cargo)") + # Fallback to cargo doc + subprocess.run( + ["cargo", "doc", "--no-deps", "--all-features"], + cwd=dirpath, + check=True, + ) + except subprocess.CalledProcessError as e: + # If just --list fails, it might be a malformed Justfile or no recipes. + # We can try cargo doc anyway if it's a rust crate. + print(f"Warning: checking {justfile_path} failed: {e}") + print(f"Attempting cargo doc fallback for {dirpath}") + try: + subprocess.run( + ["cargo", "doc", "--no-deps", "--all-features"], + cwd=dirpath, + check=True, + ) + except subprocess.CalledProcessError as e2: + print(f"Error running cargo doc in {dirpath}: {e2}") + sys.exit(1) + + +if __name__ == "__main__": + # Resolve script directory to make it location-independent + script_dir = os.path.dirname(os.path.realpath(__file__)) + root_dir = os.path.dirname(script_dir) + + # Change to root directory + os.chdir(root_dir) + + # Run for crates and utils + run_docs("crates") + run_docs("utils") diff --git a/scripts/fmt_all.sh b/scripts/fmt_all.sh index 9bfe9865c1b..0d5599ff383 100755 --- a/scripts/fmt_all.sh +++ b/scripts/fmt_all.sh @@ -40,4 +40,15 @@ if [ "$1" != "check" ]; then fi fi +if command -v just > /dev/null; then + echo "[*] Formatting Justfiles" + find . -type f -name "Justfile" | while read -r JUSTFILE; do + if [ "$1" = "check" ]; then + just --unstable --fmt --check --justfile "$JUSTFILE" || exit 1 + else + just -q --justfile "$JUSTFILE" _check || just --unstable --fmt --justfile "$JUSTFILE" || exit 1 + fi + done +fi + echo "[*] Done :)" diff --git a/utils/ci_runner/src/main.rs b/utils/ci_runner/src/main.rs index aef1118d1b9..75ba42fde27 100644 --- a/utils/ci_runner/src/main.rs +++ b/utils/ci_runner/src/main.rs @@ -28,6 +28,10 @@ fn run() -> Result<(), Box> { unsafe { env::set_var("PROFILE", "dev"); env::set_var("PROFILE_DIR", "debug"); + let target_dir = env::var("TARGET_DIR") + .unwrap_or_else(|_| project_dir.join("target").to_string_lossy().to_string()); + env::set_var("TARGET_DIR", &target_dir); + env::set_var("CARGO_TARGET_DIR", &target_dir); } for f in &fuzzers_to_test { diff --git a/utils/find_llvm_config/Cargo.toml b/utils/find_llvm_config/Cargo.toml new file mode 100644 index 00000000000..1782dede3a8 --- /dev/null +++ b/utils/find_llvm_config/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "find_llvm_config" +version = "0.1.0" +edition = "2021" +description = "A standalone binary to find the llvm-config path" +license = "MIT OR Apache-2.0" +repository = "https://github.com/AFLplusplus/LibAFL" +readme = "README.md" +keywords = ["fuzzing", "testing", "llvm"] +categories = ["development-tools::testing"] + +[dependencies] +libafl_build = { path = "../../crates/libafl_build" } diff --git a/utils/find_llvm_config/README.md b/utils/find_llvm_config/README.md new file mode 100644 index 00000000000..adb1a03278a --- /dev/null +++ b/utils/find_llvm_config/README.md @@ -0,0 +1,5 @@ +# find_llvm_config + +A standalone binary to find the `llvm-config` path. + +This tool is used by LibAFL to locate the `llvm-config` executable, which is essential for building LLVM-based components. diff --git a/utils/find_llvm_config/src/main.rs b/utils/find_llvm_config/src/main.rs new file mode 100644 index 00000000000..f610b06bb91 --- /dev/null +++ b/utils/find_llvm_config/src/main.rs @@ -0,0 +1,11 @@ +use libafl_build::find_llvm_config; + +fn main() { + match find_llvm_config() { + Ok(path) => print!("{}", path), + Err(e) => { + eprintln!("Error: {}", e); + std::process::exit(1); + } + } +} diff --git a/utils/libafl_jumper/src/main.rs b/utils/libafl_jumper/src/main.rs index f8a44723958..203d4ac814b 100644 --- a/utils/libafl_jumper/src/main.rs +++ b/utils/libafl_jumper/src/main.rs @@ -98,27 +98,32 @@ fn main() { } /// Main for `no_std` - that's the one we will use inside LibAFL_QEMU. +/// +/// # Safety +/// This function will jump to an address given as a string as parameter. The definition of unsafe. #[cfg(not(feature = "std"))] #[unsafe(no_mangle)] pub unsafe extern "C" fn main(argc: i32, argv: *const *const u8) -> ! { - if argc < 2 || argv.is_null() { - // No params - nothing we can do. - // # Safety - // So much crash. - libafl_jmp(0x42424242_u32 as _); - } + unsafe { + if argc < 2 || argv.is_null() { + // No params - nothing we can do. + // # Safety + // So much crash. + libafl_jmp(0x42424242_u32 as _); + } - let arg = argv.add(1); - let mut val = *arg; + let arg = argv.add(1); + let mut val = *arg; - if *val == b'0' && *val.add(1) == b'x' || *val.add(1) == b'X' { - // strip leading 0x - val = val.add(2); - } + if *val == b'0' && *val.add(1) == b'x' || *val.add(1) == b'X' { + // strip leading 0x + val = val.add(2); + } - let hex_string = CStr::from_ptr(*val as _).to_str().unwrap(); + let hex_string = CStr::from_ptr(*val as _).to_str().unwrap(); - decode_hex_and_jmp(hex_string); + decode_hex_and_jmp(hex_string); + } } fn decode_hex_and_jmp(hex_string: &str) -> ! {