Corrupt-file-corpus in test-suite (vaste set pathologische bestanden bij elke CI-run) #1357
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck#1357
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Wat
Een vaste, geversioneerde set met opzettelijk kapotte en pathologische
bestanden in de test-suite, die bij elke CI-run wordt geopend om te
verifiëren dat elk invoerpad graceful faalt — geen crash, geen hang, geen
stil-wegschrijven van data.
Waarom
Dit is de "runnable check" die de eigen repo-regels eisen voor niet-triviale
logica: de kleinste test die faalt als de logica breekt. Voor de
robustness-eis ("corrupte bestanden mogen de app niet laten crashen") is die
check een corpus, niet één assertion.
Het voorkomt regressie van de fixes die uit #1350–#1355 voortkomen. Zonder een
vaste corpus betekent elke nieuwe parser of elk refactor dat je de
robustness-garantie opnieuw handmatig moet nagaan — en dat is precies het
soort werk dat stilletjes niet gebeurt.
Voorgestelde corpus
Een map
test/corpus/met minimaal:.md..md: geen frontmatter, geen marp.../en absolute paden.[[[[[[...]]]]]]tot de stack-overflow(de #1353-case).
Elk bestand wordt in een test aangeboden aan het juiste invoerpad, en de test
beweert: geen exception, geen crash, een geldige weigering of een geldig
resultaat met waarschuwing.
Organisatie
Dit is een taak die georganiseerd moet worden: de corpus-bestanden maken (sommige
zijn synthetic, sommige zijn gemuteerde echte bestanden), de test-harness die ze
elk door het juiste pad haalt, en een plek in CI. Het is de structurele tegenhanger
van #1356 (fuzz-infrastructuur): waar fuzzing random inputs genereert, is dit een
vaste, gecurateerde set die de bekende faalmoden dekt.
Beide samen — een vaste corpus voor regressie en fuzz-infrastructuur voor
ontdekking — zijn de twee lagen die de handmatige security-research-rondes
structuur geven.
Herkomst
Geïdentificeerd tijdens security research naar defense-in-depth voor OciDeck.
De bevindingen uit deze ronde zijn elk een faalmodus die in zo'n corpus
thuishoort.