dog/git/GIT.c drains tree entries, commit headers and refnames straight off remote pack bytes, and dog/git/DELT.c::DELTApply applies delta instruction streams — git's classic CVE alley. Today only the OFS delta chase (PACKResolveOfs, dog/fuzz/PACKRESOLVE.c) is fuzzed; the applier alone and the drains have no targets. Method: Issues.
GITu8sDrainTree/GITu8sFileSplit, GITu8sDrainCommit/GITParseCommit/ GITu8sIdent, GITParseRef/GITFeedRef, PKTu8sDrain — all consume attacker-controlled bytes (pack objects, wire pkt-lines, refnames).DELTApply(base, delta, out) copy/insert opcodes index into base and size out; PACKRESOLVEfuzz reaches it only through well-framed packs.PACKResolveOfs ping-pong sizing) is adjacent context; don't duplicate its scope here.GITfuzz: one target looping each drain to exhaustion over the raw input (first byte selects the drain); invariants: no crash/OOB, out-slices in-bounds, drains consume monotonically (no infinite loop).DELTfuzz: split input into (base, delta), DELTApply into a bounded buffer — corrupt streams must yield an error, never a fault; plus the round-trip oracle DELTApply(a, DELTEncode(a,b)) == b on split inputs.dog/fuzz/CMakeLists.txt; ≥1M execs / 10 min clean under ASan; seeds from real git objects (test/data, a .keeper log).PACKRESOLVE.c structure.GITfuzz: selector byte + drain loops for tree/commit/ident/ref/pkt.DELTfuzz: adversarial apply + encode/apply round-trip property.~/src/DOG-019 (fuzz/GIT.c selector-byte drains, fuzz/DELT.c adversarial apply + encode/apply round-trip oracle, CMake wiring, 14+5 seed corpora), UNLANDED. Orchestrator-verified: only fuzz/CMakeLists.txt modified among tracked files; both targets re-run clean 60 s each, zero artifacts.