[bignum-fuzzer] Add BoringSSL+libmpdec fuzzer (#2194)

This commit is contained in:
Guido Vranken 2019-03-01 16:03:15 +01:00 committed by jonathanmetzman
parent 3bc10fd753
commit 231ec64fa2
3 changed files with 22 additions and 0 deletions

View File

@ -20,6 +20,7 @@ RUN apt-get update && apt-get install -y software-properties-common python-softw
RUN add-apt-repository -y ppa:gophers/archive && apt-get update && apt-get install -y golang-1.9-go
RUN ln -s /usr/lib/go-1.9/bin/go /usr/bin/go
RUN wget https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-2.4.2.tar.gz
RUN git clone --recursive https://github.com/golang/go
RUN git clone --depth 1 https://github.com/guidovranken/bignum-fuzzer
RUN git clone --depth 1 https://github.com/openssl/openssl

View File

@ -13,6 +13,11 @@ export PATH=`realpath $SRC/go/bin`:$PATH
curl https://sh.rustup.rs -sSf | sh -s -- -y
source $HOME/.cargo/env
# Build libmpdec
tar zxf mpdecimal-2.4.2.tar.gz
cd mpdecimal-2.4.2
./configure && make -j$(nproc)
cd $SRC/openssl
if [[ $CFLAGS = *sanitize=memory* ]]
then
@ -47,6 +52,10 @@ make
cd $SRC/bignum-fuzzer/modules/libgmp
LIBGMP_INCLUDE_PATH=$SRC/libgmp LIBGMP_A_PATH=$SRC/libgmp/.libs/libgmp.a make
# Build libmpdec module
cd $SRC/bignum-fuzzer/modules/libmpdec
LIBMPDEC_A_PATH=$SRC/mpdecimal-2.4.2/libmpdec/libmpdec.a LIBMPDEC_INCLUDE_PATH=$SRC/mpdecimal-2.4.2/libmpdec make
BASE_CXXFLAGS=$CXXFLAGS
# Build OpenSSL/Go fuzzer
@ -118,9 +127,20 @@ LIBFUZZER_LINK="-lFuzzingEngine" make
# Copy BoringSSL/mbedtls fuzzer to the designated location
cp $SRC/bignum-fuzzer/fuzzer $OUT/fuzzer_boringssl_mbedtls_num_len_100_all_operations_num_loops_1
# Build BoringSSL/libmpdec fuzzer
cd $SRC/bignum-fuzzer
make clean
./config-modules.sh boringssl libmpdec
CXXFLAGS="$BASE_CXXFLAGS -DBNFUZZ_FLAG_NUM_LEN=100 -DBNFUZZ_FLAG_ALL_OPERATIONS=1 -DBNFUZZ_FLAG_NUM_LOOPS=1"
LIBFUZZER_LINK="-lFuzzingEngine" make
# Copy BoringSSL/libmpdec fuzzer to the designated location
cp $SRC/bignum-fuzzer/fuzzer $OUT/fuzzer_boringssl_libmpdec_num_len_100_all_operations_num_loops_1
# Copy seed corpora to the designated location
cp $SRC/bignum-fuzzer/corpora/fuzzer_openssl_go_no_negative_num_len_1200_all_operations_seed_corpus.zip $OUT
cp $SRC/bignum-fuzzer/corpora/fuzzer_openssl_rust_num_len_1200_all_operations_num_loops_1_seed_corpus.zip $OUT
cp $SRC/bignum-fuzzer/corpora/fuzzer_openssl_cpp_boost_num_len_1200_all_operations_num_loops_1_seed_corpus.zip $OUT
cp $SRC/bignum-fuzzer/corpora/fuzzer_openssl_libgmp_num_len_1200_all_operations_num_loops_1_seed_corpus.zip $OUT
cp $SRC/bignum-fuzzer/corpora/fuzzer_boringssl_mbedtls_num_len_100_all_operations_num_loops_1_seed_corpus.zip $OUT
cp $SRC/bignum-fuzzer/corpora/fuzzer_boringssl_mbedtls_num_len_100_all_operations_num_loops_1_seed_corpus.zip $OUT/fuzzer_boringssl_libmpdec_num_len_100_all_operations_num_loops_1_seed_corpus.zip

View File

@ -13,5 +13,6 @@ auto_ccs:
- "davidben@google.com"
- "svaldez@google.com"
- "support-mbedtls@arm.com"
- "libmpdec@gmail.com"
fuzzing_engines:
- libfuzzer