pycparser: generalise fuzzer and add corpus (#9323)

Signed-off-by: David Korczynski <david@adalogics.com>

Signed-off-by: David Korczynski <david@adalogics.com>
This commit is contained in:
DavidKorczynski 2022-12-31 12:10:08 +00:00 committed by GitHub
parent 936463cc61
commit 7b63e429f2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 4 deletions

View File

@ -20,3 +20,5 @@ pip3 install .
for fuzzer in $(find $SRC -name 'fuzz_*.py'); do
compile_python_fuzzer $fuzzer
done
zip $OUT/fuzz_c_parser_seed_corpus.zip ./tests/c_files/*.c

View File

@ -23,13 +23,14 @@ pysecsan.add_hooks()
def TestOneInput(data):
fdp = atheris.FuzzedDataProvider(data)
c_source = fdp.ConsumeUnicodeNoSurrogates(sys.maxsize)
_c_parser = pycparser.c_parser.CParser(
lex_optimize=False,
yacc_debug=False,
yacc_optimize=False)
lex_optimize=fdp.ConsumeBool(),
yacc_debug=fdp.ConsumeBool(),
yacc_optimize=fdp.ConsumeBool())
try:
_c_parser.parse(
fdp.ConsumeUnicodeNoSurrogates(1024),
c_source,
''
)
except pycparser.c_parser.ParseError: