@@ -23,7 +23,6 @@ sed -i 's|\(usleep.*\)|// \1|' ssh-agent.c
2323
2424# Build project
2525autoreconf
26- env
2726if ! env CFLAGS=" " ./configure \
2827 --without-hardening \
2928 --without-zlib-version-check \
@@ -37,52 +36,20 @@ if ! env CFLAGS="" ./configure \
3736fi
3837make -j$( nproc) all
3938
40- # Build fuzzers
41- EXTRA_CFLAGS=" -DCIPHER_NONE_AVAIL=1 -D_GNU_SOURCE -Iopenbsd-compat/include"
42- STATIC_CRYPTO=" -Wl,-Bstatic -lcrypto -Wl,-Bdynamic"
43-
44- SK_NULL=ssh-sk-null.o
45- SK_DUMMY=sk-dummy.o
46- COMMON_DEPS=" ssh-pkcs11-client.o -lssh -lopenbsd-compat"
47-
48- $CC $CFLAGS $EXTRA_CFLAGS -I. -g -c \
49- regress/misc/fuzz-harness/ssh-sk-null.cc -o ssh-sk-null.o
50- $CC $CFLAGS $EXTRA_CFLAGS -I. -g -c \
51- -DSK_DUMMY_INTEGRATE=1 regress/misc/sk-dummy/sk-dummy.c -o sk-dummy.o
52-
53- $CXX $CXXFLAGS -std=c++11 $EXTRA_CFLAGS -I. -L. -Lopenbsd-compat -g \
54- regress/misc/fuzz-harness/pubkey_fuzz.cc -o $OUT /pubkey_fuzz \
55- $COMMON_DEPS $SK_NULL $STATIC_CRYPTO $LIB_FUZZING_ENGINE
56- $CXX $CXXFLAGS -std=c++11 $EXTRA_CFLAGS -I. -L. -Lopenbsd-compat -g \
57- regress/misc/fuzz-harness/privkey_fuzz.cc -o $OUT /privkey_fuzz \
58- $COMMON_DEPS $SK_NULL $STATIC_CRYPTO $LIB_FUZZING_ENGINE
59- $CXX $CXXFLAGS -std=c++11 $EXTRA_CFLAGS -I. -L. -Lopenbsd-compat -g \
60- regress/misc/fuzz-harness/sig_fuzz.cc -o $OUT /sig_fuzz \
61- $COMMON_DEPS $SK_NULL $STATIC_CRYPTO $LIB_FUZZING_ENGINE
62- $CXX $CXXFLAGS -std=c++11 $EXTRA_CFLAGS -I. -L. -Lopenbsd-compat -g \
63- regress/misc/fuzz-harness/authopt_fuzz.cc -o $OUT /authopt_fuzz \
64- auth-options.o $COMMON_DEPS $SK_NULL $STATIC_CRYPTO \
65- $LIB_FUZZING_ENGINE
66- $CXX $CXXFLAGS -std=c++11 $EXTRA_CFLAGS -I. -L. -Lopenbsd-compat -g \
67- regress/misc/fuzz-harness/sshsig_fuzz.cc -o $OUT /sshsig_fuzz \
68- sshsig.o $COMMON_DEPS $SK_NULL $STATIC_CRYPTO \
69- $LIB_FUZZING_ENGINE
70- $CXX $CXXFLAGS -std=c++11 $EXTRA_CFLAGS -I. -L. -Lopenbsd-compat -g \
71- regress/misc/fuzz-harness/sshsigopt_fuzz.cc -o $OUT /sshsigopt_fuzz \
72- sshsig.o $COMMON_DEPS $SK_NULL $STATIC_CRYPTO \
73- $LIB_FUZZING_ENGINE
74- $CXX $CXXFLAGS -std=c++11 $EXTRA_CFLAGS -I. -L. -Lopenbsd-compat -g \
75- regress/misc/fuzz-harness/kex_fuzz.cc -o $OUT /kex_fuzz \
76- $COMMON_DEPS -lz $SK_NULL $STATIC_CRYPTO \
77- $LIB_FUZZING_ENGINE
78-
79- $CC $CFLAGS $EXTRA_CFLAGS -I. -g -c \
80- regress/misc/fuzz-harness/agent_fuzz_helper.c -o agent_fuzz_helper.o
81- $CC $CFLAGS $EXTRA_CFLAGS -I. -g -c -DENABLE_SK_INTERNAL=1 ssh-sk.c -o ssh-sk.o
82- $CXX $CXXFLAGS -std=c++11 $EXTRA_CFLAGS -I. -L. -Lopenbsd-compat -g \
83- regress/misc/fuzz-harness/agent_fuzz.cc -o $OUT /agent_fuzz \
84- $SK_DUMMY agent_fuzz_helper.o ssh-sk.o $COMMON_DEPS -lz \
85- $STATIC_CRYPTO $LIB_FUZZING_ENGINE
39+ # Build fuzzers using upstream Makefile
40+ FUZZER_TARGETS=$( cd regress/misc/fuzz-harness && ls * _fuzz.cc 2> /dev/null | grep -v sntrup761 | sed ' s/\.cc$//' | tr ' \n' ' ' )
41+ make -C regress/misc/fuzz-harness $FUZZER_TARGETS \
42+ CC=" $CC " \
43+ CXX=" $CXX " \
44+ CFLAGS=" -D_GNU_SOURCE=1 -DCIPHER_NONE_AVAIL=1 -I ../../.. -I ../../../openbsd-compat/include $CFLAGS " \
45+ CXXFLAGS=" -D_GNU_SOURCE=1 -DCIPHER_NONE_AVAIL=1 -I ../../.. -I ../../../openbsd-compat/include $CXXFLAGS " \
46+ FUZZ_FLAGS=" $CXXFLAGS " \
47+ FUZZ_LIBS=" $LIB_FUZZING_ENGINE " \
48+ COMMON_OBJS=" ../../../ssh-pkcs11-client.o" \
49+ LIBS=" ../../../ssh-pkcs11-client.o -lssh -lopenbsd-compat -Wl,-Bstatic -lcrypto -Wl,-Bdynamic \$ (FUZZ_LIBS)"
50+
51+ # Copy all fuzzers to output directory
52+ cp regress/misc/fuzz-harness/* _fuzz $OUT /
8653
8754# Prepare seed corpora
8855CASES=" $SRC /openssh-fuzz-cases"
@@ -93,4 +60,4 @@ CASES="$SRC/openssh-fuzz-cases"
9360(set -e ; cd ${CASES} /sshsig ; zip -r $OUT /sshsig_fuzz_seed_corpus.zip .)
9461(set -e ; cd ${CASES} /sshsigopt ; zip -r $OUT /sshsigopt_fuzz_seed_corpus.zip .)
9562(set -e ; cd ${CASES} /kex ; zip -r $OUT /kex_fuzz_seed_corpus.zip .)
96- (set -e ; cd ${CASES} /agent ; zip -r $OUT /agent_fuzz_seed_corpus.zip .)
63+ (set -e ; cd ${CASES} /agent ; zip -r $OUT /agent_fuzz_seed_corpus.zip .)
0 commit comments