forensic-hashdb 0.2.0

File hash databases for digital forensics — NSRL/CIRCL known-good, malware known-bad, known-vulnerable Windows drivers (loldrivers), and analyst-supplied MD5/SHA1/SHA256 feeds.
Documentation
name: Fuzz

on:
  push:
    branches: [main]
  pull_request:
  schedule:
    - cron: "0 4 * * 1" # Mondays 04:00 UTC — deep run
  workflow_dispatch:

permissions:
  contents: read

jobs:
  fuzz:
    name: Fuzz ${{ matrix.target }}
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        target: [fuzz_known_good, fuzz_feed]
    steps:
      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
      - uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # nightly
        with:
          toolchain: nightly
          components: rust-src
      - run: cargo install cargo-fuzz --locked
      - name: Fuzz (45s smoke on PR/push, 10 min on schedule)
        run: |
          if [ "${{ github.event_name }}" = "schedule" ]; then T=600; else T=45; fi
          cargo +nightly fuzz run "${{ matrix.target }}" -- -max_total_time=$T -rss_limit_mb=4096
      - name: Upload crash artifacts
        if: failure()
        uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
        with:
          name: fuzz-crash-${{ matrix.target }}
          path: fuzz/artifacts/
          if-no-files-found: ignore