diff --git a/projects/bignum-fuzzer/Dockerfile b/projects/bignum-fuzzer/Dockerfile index 87289de32..cc31b61fe 100644 --- a/projects/bignum-fuzzer/Dockerfile +++ b/projects/bignum-fuzzer/Dockerfile @@ -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 diff --git a/projects/bignum-fuzzer/build.sh b/projects/bignum-fuzzer/build.sh index 07985058e..da26e57cb 100755 --- a/projects/bignum-fuzzer/build.sh +++ b/projects/bignum-fuzzer/build.sh @@ -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 diff --git a/projects/bignum-fuzzer/project.yaml b/projects/bignum-fuzzer/project.yaml index c22a2584d..7b326bd04 100644 --- a/projects/bignum-fuzzer/project.yaml +++ b/projects/bignum-fuzzer/project.yaml @@ -13,5 +13,6 @@ auto_ccs: - "davidben@google.com" - "svaldez@google.com" - "support-mbedtls@arm.com" + - "libmpdec@gmail.com" fuzzing_engines: - libfuzzer