aboutsummaryrefslogtreecommitdiffhomepage
path: root/projects/tor/build.sh
diff options
context:
space:
mode:
authorGravatar Nick Mathewson <nickm@freehaven.net>2017-01-09 14:32:36 -0500
committerGravatar Kostya Serebryany <konstantin.s.serebryany@gmail.com>2017-01-09 11:32:36 -0800
commit11985a0665e3066d0852e7bc0560d42733730f44 (patch)
treed0185ea63f36d5b44eefbe332e4c7da27d06052e /projects/tor/build.sh
parentca634ceaf1eb85a883d0a29d27c6a5e52b1cd26e (diff)
Tor oss fuzzing configuration (#265)
* Initial attempts at getting Tor to build in oss-fuzz docker. * add automake/autoconf * More work * more fixes for tor * copyright notice, corpora. * zip correctly.
Diffstat (limited to 'projects/tor/build.sh')
-rw-r--r--projects/tor/build.sh49
1 files changed, 49 insertions, 0 deletions
diff --git a/projects/tor/build.sh b/projects/tor/build.sh
new file mode 100644
index 00000000..45d438a5
--- /dev/null
+++ b/projects/tor/build.sh
@@ -0,0 +1,49 @@
+#!/bin/bash -eu
+# Copyright 2016 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+##############################################################################
+
+cd ${SRC}/tor
+
+sh autogen.sh
+
+# We need to run configure with leak-checking disabled, or many of the
+# test functions will fail.
+export ASAN_OPTIONS=detect_leaks=0
+
+./configure --disable-asciidoc --enable-oss-fuzz
+make clean
+make -j$(nproc) oss-fuzz-fuzzers
+
+TORLIBS="src/or/libtor-testing.a"
+TORLIBS="$TORLIBS src/common/libor-crypto-testing.a"
+TORLIBS="$TORLIBS src/ext/keccak-tiny/libkeccak-tiny.a"
+TORLIBS="$TORLIBS src/common/libcurve25519_donna.a"
+TORLIBS="$TORLIBS src/ext/ed25519/ref10/libed25519_ref10.a"
+TORLIBS="$TORLIBS src/ext/ed25519/donna/libed25519_donna.a"
+TORLIBS="$TORLIBS src/common/libor-testing.a"
+TORLIBS="$TORLIBS src/common/libor-ctime-testing.a"
+TORLIBS="$TORLIBS src/common/libor-event-testing.a"
+TORLIBS="$TORLIBS src/trunnel/libor-trunnel-testing.a"
+TORLIBS="$TORLIBS -lz -lm -levent -lssl -lcrypto"
+
+for fuzzer in src/test/fuzz/*.a; do
+ output="${fuzzer%.a}"
+ output="${output##*lib}"
+ ${CXX} ${CXXFLAGS} -std=c++11 -lFuzzingEngine ${fuzzer} ${TORLIBS} -o ${OUT}/${output}
+ zip -j ${OUT}/${output}_seed_corpus.zip ${SRC}/tor-fuzz-corpora/${output#oss-fuzz-}/*
+done
+
+