-
Notifications
You must be signed in to change notification settings - Fork 10.5k
Open
Labels
SILParserArea → compiler: The SIL parserArea → compiler: The SIL parsercompilerThe Swift compiler itselfThe Swift compiler itselffeatureA feature request or implementationA feature request or implementationtest suiteArea: test suiteArea: test suite
Description
Previous ID | SR-2091 |
Radar | None |
Original Reporter | @gottesmm |
Type | New Feature |
Additional Detail from JIRA
Votes | 0 |
Component/s | Compiler |
Labels | New Feature, SILParser |
Assignee | None |
Priority | Medium |
md5: 09279acc9947543a1d82bb4b2f8f8800
Issue Description:
We should harden the SILParser by using libfuzzer as follows.
LibFuzzer provides a random buffer of data to a driver program and then mutates that buffer in various ways. Given how randomly the buffer is mutated, it would not be very useful to just have it randomly mutate strings. Instead what we can do is use these bytes as edge selectors in a state machine based on the SIL grammar.
This will ensure that valid SIL programs are produced and at the same time allow for libfuzzer to drive the fuzzing process without knowing anything about the underlying SIL language.
Metadata
Metadata
Assignees
Labels
SILParserArea → compiler: The SIL parserArea → compiler: The SIL parsercompilerThe Swift compiler itselfThe Swift compiler itselffeatureA feature request or implementationA feature request or implementationtest suiteArea: test suiteArea: test suite