diff options
-rw-r--r-- | devel/fuzz/Makefile | 4 | ||||
-rwxr-xr-x | devel/fuzz/run-afl.sh | 45 |
2 files changed, 47 insertions, 2 deletions
diff --git a/devel/fuzz/Makefile b/devel/fuzz/Makefile index 8e83dd12a8..f0459fdf28 100644 --- a/devel/fuzz/Makefile +++ b/devel/fuzz/Makefile @@ -16,8 +16,8 @@ # along with this file; if not, write to the Free Software Foundation, # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -CC="gcc" -CFLAGS=-g -fsanitize=address -fsanitize=undefined +CC?="gcc" +CFLAGS?=-g -fsanitize=address -fsanitize=undefined COMMON=-I../../lib/includes -L../../lib/.libs -Wl,-rpath=../../lib/.libs -lgnutls all: gnutls_pkcs7_parser_fuzzer gnutls_client_fuzzer gnutls_dn_parser_fuzzer \ diff --git a/devel/fuzz/run-afl.sh b/devel/fuzz/run-afl.sh new file mode 100755 index 0000000000..e10ae30b8b --- /dev/null +++ b/devel/fuzz/run-afl.sh @@ -0,0 +1,45 @@ +#!/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" +fi + +if test -z "$1";then + echo "Usage: $0 test-case" + echo "Example: $0 gnutls_x509_parser_fuzzer" + exit 1 +fi + +rm -f $1 +CFLAGS="-g -O2" CC=afl-gcc make $1 || exit 1 + +TEST=$(echo $1|sed s/_fuzzer//) + +TMPOUT=${TEST}.$$.out +mkdir -p ${TMPOUT} +afl-fuzz -i ${TEST}.in -o ${TMPOUT} -- ./${TEST}_fuzzer + +echo "output was stored in $TMPOUT" + +exit 0 |