diff --git a/projects/pycparser/build.sh b/projects/pycparser/build.sh index 338e12e52..1787d5330 100644 --- a/projects/pycparser/build.sh +++ b/projects/pycparser/build.sh @@ -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 diff --git a/projects/pycparser/fuzz_c_parser.py b/projects/pycparser/fuzz_c_parser.py index e529c6f08..c088c3941 100644 --- a/projects/pycparser/fuzz_c_parser.py +++ b/projects/pycparser/fuzz_c_parser.py @@ -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: