1
0
mirror of https://gitlab.gnome.org/GNOME/libxml2.git synced 2025-01-04 05:17:37 +03:00
libxml2/fuzz
Nick Wellnhofer 6f1470a5d6 Hardcode maximum XPath recursion depth
Always limit nested functions calls to 5000. This avoids call stack
overflows with deeply nested expressions.

The expression parser produces about 10 nested function calls when
parsing a subexpression in parentheses, so the effective nesting limit
is about 500 which should be more than enough.

Use a lower limit when fuzzing to account for increased memory usage
when using sanitizers.
2020-08-26 00:22:25 +02:00
..
seed Add a couple of libFuzzer targets 2020-06-05 13:53:11 +02:00
.gitignore Consolidate seed corpus generation 2020-08-24 21:14:55 +02:00
fuzz.c Consolidate seed corpus generation 2020-08-24 21:14:55 +02:00
fuzz.h Consolidate seed corpus generation 2020-08-24 21:14:55 +02:00
genSeed.c Consolidate seed corpus generation 2020-08-24 21:14:55 +02:00
html.c Fuzz target for HTML parser 2020-06-15 15:23:38 +02:00
html.dict Fix several quadratic runtime issues in HTML push parser 2020-07-23 20:47:35 +02:00
html.options Update fuzzing code 2020-07-31 11:55:13 +02:00
Makefile.am Consolidate seed corpus generation 2020-08-24 21:14:55 +02:00
README Add a couple of libFuzzer targets 2020-06-05 13:53:11 +02:00
regexp.c Update fuzzing code 2020-07-31 11:55:13 +02:00
regexp.dict Update fuzzing code 2020-07-31 11:55:13 +02:00
regexp.options Update fuzzing code 2020-07-31 11:55:13 +02:00
schema.c Fuzz target for XML Schemas 2020-06-23 16:20:27 +02:00
schema.dict Fuzz target for XML Schemas 2020-06-23 16:20:27 +02:00
schema.options Update fuzzing code 2020-07-31 11:55:13 +02:00
testFuzzer.c Test fuzz targets with dummy driver 2020-08-24 03:57:03 +02:00
uri.c Add a couple of libFuzzer targets 2020-06-05 13:53:11 +02:00
uri.options Update fuzzing code 2020-07-31 11:55:13 +02:00
xml.c Pass URL of main entity in XML fuzzer 2020-08-24 23:17:34 +02:00
xml.dict Add a couple of libFuzzer targets 2020-06-05 13:53:11 +02:00
xml.options Update fuzzing code 2020-07-31 11:55:13 +02:00
xpath.c Hardcode maximum XPath recursion depth 2020-08-26 00:22:25 +02:00
xpath.dict Add XPath and XPointer fuzzer 2020-08-06 14:12:32 +02:00
xpath.options Add XPath and XPointer fuzzer 2020-08-06 14:12:32 +02:00

libFuzzer instructions for libxml2
==================================

Set compiler and options:

    export CC=clang
    export CFLAGS="-g -fsanitize=fuzzer-no-link,address,undefined \
        -fno-sanitize-recover=all \
        -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION"

Build libxml2 with instrumentation:

    ./configure --without-python
    make

Run fuzzers:

    make -C fuzz fuzz-xml