Skip to content
This repository was archived by the owner on Apr 5, 2026. It is now read-only.

feat: --stats-allow-net CIDR for custom stats access ranges #67

feat: --stats-allow-net CIDR for custom stats access ranges

feat: --stats-allow-net CIDR for custom stats access ranges #67

Workflow file for this run

# =============================================================================
# Fuzz Testing — PR Regression Guard
# =============================================================================
#
# Runs each fuzz target for 60 seconds on every push/PR to master.
# This is a fast smoke test: "Did this code change introduce a parser crash?"
#
# For deep coverage exploration (30 min/target, corpus persistence, auto-filed
# issues on crash), see the weekly scheduled campaign in fuzz-scheduled.yml.
#
# Targets:
# - fuzz_tls_server_hello — TLS 1.3 ServerHello record validation
# - fuzz_tls_client_hello — SNI extraction + cipher suite parsing
# - fuzz_http_request — HTTP request state machine (/stats endpoint)
#
# All targets run with ASan + UBSan + libFuzzer (coverage-guided).
# See fuzz-scheduled.yml header for detailed explanation of why fuzzing
# matters for a public-facing network parser like MTProxy.
# =============================================================================
name: Fuzz Testing
on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
jobs:
fuzz:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y clang libssl-dev zlib1g-dev
- name: Build fuzz targets
run: make fuzz CC=clang
# 60s per target — enough to catch regressions from code changes,
# not enough for deep exploration (that's what fuzz-scheduled.yml does)
- name: Run fuzz tests (60s each)
run: make fuzz-run FUZZ_DURATION=60
- name: Upload crash artifacts
if: failure()
uses: actions/upload-artifact@v4
with:
name: fuzz-crashes
path: |
fuzz/crash-*
fuzz/oom-*
fuzz/timeout-*