mirror of https://github.com/google/oss-fuzz.git
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:
parent
936463cc61
commit
7b63e429f2
|
@ -20,3 +20,5 @@ pip3 install .
|
||||||
for fuzzer in $(find $SRC -name 'fuzz_*.py'); do
|
for fuzzer in $(find $SRC -name 'fuzz_*.py'); do
|
||||||
compile_python_fuzzer $fuzzer
|
compile_python_fuzzer $fuzzer
|
||||||
done
|
done
|
||||||
|
|
||||||
|
zip $OUT/fuzz_c_parser_seed_corpus.zip ./tests/c_files/*.c
|
||||||
|
|
|
@ -23,13 +23,14 @@ pysecsan.add_hooks()
|
||||||
|
|
||||||
def TestOneInput(data):
|
def TestOneInput(data):
|
||||||
fdp = atheris.FuzzedDataProvider(data)
|
fdp = atheris.FuzzedDataProvider(data)
|
||||||
|
c_source = fdp.ConsumeUnicodeNoSurrogates(sys.maxsize)
|
||||||
_c_parser = pycparser.c_parser.CParser(
|
_c_parser = pycparser.c_parser.CParser(
|
||||||
lex_optimize=False,
|
lex_optimize=fdp.ConsumeBool(),
|
||||||
yacc_debug=False,
|
yacc_debug=fdp.ConsumeBool(),
|
||||||
yacc_optimize=False)
|
yacc_optimize=fdp.ConsumeBool())
|
||||||
try:
|
try:
|
||||||
_c_parser.parse(
|
_c_parser.parse(
|
||||||
fdp.ConsumeUnicodeNoSurrogates(1024),
|
c_source,
|
||||||
''
|
''
|
||||||
)
|
)
|
||||||
except pycparser.c_parser.ParseError:
|
except pycparser.c_parser.ParseError:
|
||||||
|
|
Loading…
Reference in New Issue