Skip to content

test: seed empty fuzz corpora and add malformed-PDF goldens - #616

Open
mberrys wants to merge 7 commits into
devfrom
cursor-fuzz-malformed-seeds-bf51
Open

mberrys wants to merge 7 commits into
devfrom
cursor-fuzz-malformed-seeds-bf51

Conversation

@mberrys

@mberrys mberrys commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

Review follow-ups

Addresses merge-gate feedback on acceptance proof:

  1. 15s hang boundoperatoracceptance::runPdfTool() now accepts an optional timeout; malformed preflight cases use a 15s watchdog instead of the default 120s process limit with a post-hoc elapsed check.
  2. Malformed fixture claims — Docs and manifest notes now describe representative malformed inputs that must fail closed as generic input-error, without asserting which parser stage rejected each construct.
  3. .gitkeep corpus loopholecheck_fuzz_corpus.py rejects ignored basenames (including .gitkeep) as manifest seeds and only counts a harness as seeded after a validated real seed entry. Added regression test test_rejects_manifested_gitkeep.

Encrypted parser-fuzzer limitation remains disclosed separately and is not part of this change set.

Open in Web Open in Cursor 

View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

cursoragent and others added 3 commits September 15, 2026 20:23
Give fuzz_pdf_parser, fuzz_content_stream, and fuzz_stream_filters
deterministic entry-point seeds, add a small fail-closed malformed-PDF
preflight set, and require every harness to own at least one manifested
seed so parser hangs are not left to mutation luck.

Co-authored-by: michael berry <mberrys@users.noreply.github.com>
Point /Root at generation 1 while the catalog object header remains
1 0 obj so damaged-document recovery cannot bind the catalog and
PdfTool returns input-error instead of findings.

Co-authored-by: michael berry <mberrys@users.noreply.github.com>
Drop the fuzz_pdf_parser encrypted seed and revert the harness password
callback so clang-tidy is not run against a fuzzer TU missing from the
non-fuzz compile_commands database. PdfTool still covers the case.

Co-authored-by: michael berry <mberrys@users.noreply.github.com>
@mberrys
mberrys marked this pull request as ready for review September 15, 2026 20:36
cursoragent and others added 4 commits September 16, 2026 23:21
- Add configurable PdfTool timeout to operator acceptance helpers and use
  a 15s watchdog for malformed preflight cases instead of a post-hoc timer
  over the default 120s process limit.
- Reject ignored basenames such as .gitkeep as manifest seeds and only count
  a harness as seeded after a real manifest entry validates.
- Soften malformed fixture docs to claim generic input-error fail-closed
  behavior rather than naming a specific parser rejection site.

Co-authored-by: michael berry <mberrys@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants