diff options
author | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2018-02-21 11:21:36 +0100 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2018-02-21 11:41:55 +0100 |
commit | 3525a0834b7818bdf71dd502ab616953dc5a7b91 (patch) | |
tree | 76ec1fd6da7607a6a3d1c7d32207b8378ba73f92 /fuzz | |
parent | ad5eac60d6728ff688593df6fb9301a3844d0121 (diff) | |
download | gnutls-3525a0834b7818bdf71dd502ab616953dc5a7b91.tar.gz |
fuzz: enable fuzzer target in afl examples and add missing script [ci skip]
Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
Diffstat (limited to 'fuzz')
-rw-r--r-- | fuzz/README.md | 4 | ||||
-rwxr-xr-x | fuzz/run-afl.sh | 49 |
2 files changed, 51 insertions, 2 deletions
diff --git a/fuzz/README.md b/fuzz/README.md index 36e4e504e9..1fc737ed58 100644 --- a/fuzz/README.md +++ b/fuzz/README.md @@ -32,7 +32,7 @@ UBSAN_OPTIONS=print_stacktrace=1 ASAN_SYMBOLIZER_PATH=/usr/lib/llvm-5.0/bin/llvm Use the following commands on top dir: ``` -$ CC=afl-clang-fast ./configure --disable-doc +$ CC=afl-clang-fast ./configure --disable-doc --enable-fuzzer-target --disable-guile $ make -j$(nproc) clean all $ cd fuzz $ ./run-afl.sh gnutls_base64_decoder_fuzzer @@ -43,7 +43,7 @@ $ ./run-afl.sh gnutls_base64_decoder_fuzzer Use the following commands on top dir: ``` -$ CC=afl-gcc ./configure --disable-doc +$ CC=afl-gcc ./configure --disable-doc --enable-fuzzer-target --disable-guile $ make -j$(nproc) clean all $ cd fuzz $ ./run-afl.sh gnutls_base64_decoder_fuzzer diff --git a/fuzz/run-afl.sh b/fuzz/run-afl.sh new file mode 100755 index 0000000000..9daaf601bf --- /dev/null +++ b/fuzz/run-afl.sh @@ -0,0 +1,49 @@ +#!/bin/sh +# Copyright (C) 2017 Red Hat, Inc. +# +# This file is part of GnuTLS. +# +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This file is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/> + +srcdir="${srcdir:-.}" +export LD_LIBRARY_PATH=${srcdir}/../lib/.libs/ + +cat ${srcdir}/../config.log|grep afl-gcc >/dev/null 2>&1 +if test $? != 0;then + echo "compile first library as:" + echo "CC=afl-gcc ./configure" + exit 1 +else + fuzz=afl-gcc +fi + +if test -z "$1";then + echo "Usage: $0 test-case" + echo "Example: $0 gnutls_x509_parser_fuzzer" + exit 1 +fi + +TEST=$1 +rm -f ${TEST} +export LD_LIBRARY_PATH=$(pwd)/../lib/.libs/ +export CFLAGS="-g -O2 -I/usr/local/include -I../lib/includes -I.." +${fuzz} ${CFLAGS} -o ${TEST} main.c ${TEST}.c -L../lib/.libs/ -lgnutls || exit 1 + +TMPOUT=${TEST}.$$.out +mkdir -p ${TMPOUT} +afl-fuzz -i ${TEST}.in -o ${TMPOUT} -- ./${TEST} + +echo "output was stored in $TMPOUT" + +exit 0 |