Skip to content

[SR-2091] Use LibFuzzer on the SIL Parser #44699

Open
@gottesmm

Description

@gottesmm
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

No one assigned

    Labels

    SILParserArea → compiler: The SIL parsercompilerThe Swift compiler itselffeatureA feature request or implementationtest suiteArea: test suite

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions