Conversation
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
marked this pull request as ready for review
September 15, 2026 20:36
- 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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Review follow-ups
Addresses merge-gate feedback on acceptance proof:
operatoracceptance::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.input-error, without asserting which parser stage rejected each construct..gitkeepcorpus loophole —check_fuzz_corpus.pyrejects ignored basenames (including.gitkeep) as manifest seeds and only counts a harness as seeded after a validated real seed entry. Added regression testtest_rejects_manifested_gitkeep.Encrypted parser-fuzzer limitation remains disclosed separately and is not part of this change set.
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.