You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Add a fuzz harness for the parser and WebSocket frames #301
From the production audit (P0-1 follow-up, setup notes in the audit report 7.2): the repo has no fuzz harness. Add cargo-fuzz targets for the IQL parser and the WS frame decoder, seed them with the deep-nesting and oversized-body cases from #295, and run a campaign on the benchmark host.
Campaign results for the harness merged in #405. All runs were on the devbox: ASan, debug assertions, 2 libFuzzer workers per target, all three targets in parallel.
run
duration
iql_statement
iql_program
ws_client_frame
findings
before the fix
15 min
907k execs, cov 6227
590k execs, cov 6740
730k execs, cov 5918
4 crashes in iql_statement, all one root cause: #397 (fixed in the same PR; inputs kept in fuzz/regressions/iql_statement/)
with the fix
20 min
987k execs, cov 6375
580k execs, cov 7001
728k execs, cov 6158
none: no crash, timeout (10 s) or OOM (2 GiB)
The planned 1-hour campaign on the benchmark host (8 workers per target) did not run. It waited behind the host's shared lock, and the host was then powered off. To run it when the host is back: flock ~/perf-gate-remote/lock make fuzz FUZZ_SECS=3600 with FUZZ_FORKS=8 (see fuzz/README.md).
Activity
test: cargo-fuzz targets for the IQL parser and /ws client frames (#301)
test: cargo-fuzz harness for the IQL parser and /ws frames; refuse no…
jsam commentedon Oct 6, 2026
Campaign results for the harness merged in #405. All runs were on the devbox: ASan, debug assertions, 2 libFuzzer workers per target, all three targets in parallel.
iql_statementiql_programws_client_frameiql_statement, all one root cause: #397 (fixed in the same PR; inputs kept infuzz/regressions/iql_statement/)The planned 1-hour campaign on the benchmark host (8 workers per target) did not run. It waited behind the host's shared lock, and the host was then powered off. To run it when the host is back:
flock ~/perf-gate-remote/lock make fuzz FUZZ_SECS=3600withFUZZ_FORKS=8(seefuzz/README.md).