53 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
| #!/bin/bash -eu
 | |
| #
 | |
| # Copyright 2016 Google Inc.
 | |
| #
 | |
| # Licensed under the Apache License, Version 2.0 (the "License");
 | |
| # you may not use this file except in compliance with the License.
 | |
| # You may obtain a copy of the License at
 | |
| #
 | |
| #      http://www.apache.org/licenses/LICENSE-2.0
 | |
| #
 | |
| # Unless required by applicable law or agreed to in writing, software
 | |
| # distributed under the License is distributed on an "AS IS" BASIS,
 | |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | |
| # See the License for the specific language governing permissions and
 | |
| # limitations under the License.
 | |
| #
 | |
| ################################################################################
 | |
| 
 | |
| # Build dependencies.
 | |
| export XMLSEC_DEPS_PATH=$SRC/xmlsec_deps
 | |
| mkdir -p $XMLSEC_DEPS_PATH
 | |
| 
 | |
| cd $SRC/libxml2
 | |
| ./autogen.sh
 | |
| ./configure --prefix="$XMLSEC_DEPS_PATH"
 | |
| make clean
 | |
| make -j$(nproc) all
 | |
| make install
 | |
| 
 | |
| cd $SRC/libxslt
 | |
| ./autogen.sh --prefix="$XMLSEC_DEPS_PATH" --with-libxml-src=${SRC}/libxml2
 | |
| make -j$(nproc)
 | |
| make install
 | |
| 
 | |
| cd $SRC/xmlsec
 | |
| autoreconf -vfi
 | |
| ./configure --with-libxml="$XMLSEC_DEPS_PATH" --with-libxslt="$XMLSEC_DEPS_PATH"
 | |
| make -j$(nproc) clean
 | |
| make -j$(nproc) all
 | |
| 
 | |
| for file in $SRC/xmlsec/tests/oss-fuzz/*_target.c; do
 | |
|     b=$(basename $file _target.c)
 | |
|     echo -e "#include <stdint.h>\n$(cat $file)" > $file
 | |
|     $CC $CFLAGS -c $file -I${XMLSEC_DEPS_PATH=}/include/libxml2 -I${XMLSEC_DEPS_PATH=}/include/ -I ./include/ \
 | |
|     -o $OUT/${b}_target.o
 | |
|     $CXX $CXXFLAGS $OUT/${b}_target.o ./src/.libs/libxmlsec1.a \
 | |
|     ./src/openssl/.libs/libxmlsec1-openssl.a $LIB_FUZZING_ENGINE \
 | |
|     "$XMLSEC_DEPS_PATH"/lib/libxslt.a "$XMLSEC_DEPS_PATH"/lib/libxml2.a \
 | |
|     -lz -llzma -o $OUT/${b}_fuzzer
 | |
| done
 | |
| cp $SRC/xmlsec/tests/oss-fuzz/config/*.options $OUT/
 | |
| wget -O $OUT/xml.dict https://raw.githubusercontent.com/mirrorer/afl/master/dictionaries/xml.dict
 |