aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--projects/tor/Dockerfile23
-rw-r--r--projects/tor/build.sh49
-rw-r--r--projects/tor/project.yaml2
3 files changed, 73 insertions, 1 deletions
diff --git a/projects/tor/Dockerfile b/projects/tor/Dockerfile
new file mode 100644
index 00000000..febf2821
--- /dev/null
+++ b/projects/tor/Dockerfile
@@ -0,0 +1,23 @@
+# 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.
+#
+##############################################################################
+
+FROM ossfuzz/base-builder
+MAINTAINER nickm@torproject.org
+RUN apt-get install -y zlib1g zlib1g-dev libevent-dev libevent-2.0 openssl autoconf automake libssl-dev make libc++-dev
+RUN true && true && true && true && true && git clone https://git.torproject.org/nickm/tor.git -b combined-fuzzing-v3
+RUN git clone https://github.com/nmathewson/tor-fuzz-corpora.git
+WORKDIR tor
+COPY build.sh $SRC/
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
+
+
diff --git a/projects/tor/project.yaml b/projects/tor/project.yaml
index d3a050f2..952eac99 100644
--- a/projects/tor/project.yaml
+++ b/projects/tor/project.yaml
@@ -1,3 +1,3 @@
-homepage: https://www.torproject.org"
+homepage: "https://www.torproject.org"
primary_contact: "nima@torproject.org"
auto_ccs: "nickm@torproject.org"