1#!/bin/bash -eu 2# 3# Copyright 2016 Google Inc. 4# 5# Licensed under the Apache License, Version 2.0 (the "License"); 6# you may not use this file except in compliance with the License. 7# You may obtain a copy of the License at 8# 9# http://www.apache.org/licenses/LICENSE-2.0 10# 11# Unless required by applicable law or agreed to in writing, software 12# distributed under the License is distributed on an "AS IS" BASIS, 13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14# See the License for the specific language governing permissions and 15# limitations under the License. 16# 17################################################################################ 18 19if [ "$SANITIZER" = undefined ]; then 20 export CFLAGS="$CFLAGS -fsanitize=unsigned-integer-overflow -fno-sanitize-recover=unsigned-integer-overflow" 21 export CXXFLAGS="$CXXFLAGS -fsanitize=unsigned-integer-overflow -fno-sanitize-recover=unsigned-integer-overflow" 22fi 23 24export V=1 25 26./autogen.sh \ 27 --disable-shared \ 28 --without-debug \ 29 --without-ftp \ 30 --without-http \ 31 --without-legacy \ 32 --without-python 33make -j$(nproc) 34 35cd fuzz 36make clean-corpus 37make fuzz.o 38 39for fuzzer in html regexp schema uri xml xpath; do 40 make $fuzzer.o 41 # Link with $CXX 42 $CXX $CXXFLAGS \ 43 $fuzzer.o fuzz.o \ 44 -o $OUT/$fuzzer \ 45 $LIB_FUZZING_ENGINE \ 46 ../.libs/libxml2.a -Wl,-Bstatic -lz -llzma -Wl,-Bdynamic 47 48 [ -e seed/$fuzzer ] || make seed/$fuzzer.stamp 49 zip -j $OUT/${fuzzer}_seed_corpus.zip seed/$fuzzer/* 50done 51 52cp *.dict *.options $OUT/ 53