1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 08:12:21 +01:00

Add instructions for building an instrumented libonig

[ci skip]
This commit is contained in:
Nikita Popov
2019-09-18 11:53:15 +02:00
parent 1fc2fec138
commit d7b4cdff3f

View File

@@ -48,3 +48,20 @@ mkdir ./my-parser-corpus
sapi/fuzzer/php-fuzz-parser -merge=1 ./my-parser-corpus sapi/fuzzer/corpus/parser
sapi/fuzzer/php-fuzz-parser -only_ascii=1 ./my-parser-corpus
```
For the mbstring fuzzer, you may want to build the libonig dependency with instrumentation. At this time, libonig is not clean under ubsan, so only the fuzzer and address sanitizers may be used.
```sh
mkdir libonig
pushd libonig
wget -O - https://github.com/kkos/oniguruma/releases/download/v6.9.3/onig-6.9.3.tar.gz \
| tar -xz --strip-components=1
./configure CC=clang CFLAGS="-fsanitize=fuzzer-no-link,address -O2 -g"
make
popd
export ONIG_CFLAGS="-I$PWD/libonig/src"
export ONIG_LIBS="-L$PWD/libonig/src/.libs -l:libonig.a"
```
This will link an instrumented libonig statically into the PHP binary.