Skip to content

Commit

Permalink
[Envoy] Add project. (google#1130)
Browse files Browse the repository at this point in the history
* [Envoy] Add project.

Following the steps at
https://github.com/google/oss-fuzz/blob/master/docs/new_project_guide.md.

Signed-off-by: Harvey Tuch <[email protected]>

* Dockerfile review feedback.

Signed-off-by: Harvey Tuch <[email protected]>
  • Loading branch information
htuch authored and tmatth committed Oct 22, 2018
1 parent d06a7e5 commit bc77cfe
Show file tree
Hide file tree
Showing 3 changed files with 100 additions and 0 deletions.
38 changes: 38 additions & 0 deletions projects/envoy/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Copyright 2018 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 gcr.io/oss-fuzz-base/base-builder
MAINTAINER [email protected]

RUN apt-get update && apt-get -y install \
build-essential \
openjdk-8-jdk \
make \
curl \
autoconf \
libtool \
cmake \
wget \
golang

# Install Bazel
RUN echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | tee /etc/apt/sources.list.d/bazel.list
RUN curl https://bazel.build/bazel-release.pub.gpg | apt-key add -
RUN apt-get update && apt-get install -y bazel

RUN git clone https://github.com/envoyproxy/envoy.git
WORKDIR /src/envoy/
COPY build.sh $SRC/
56 changes: 56 additions & 0 deletions projects/envoy/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
#!/bin/bash -eu
# Copyright 2018 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.
#
################################################################################

FUZZER_TARGETS="\
test/common/common:base64_fuzz_test \
"

FUZZER_DICTIONARIES="\
"

# Skip gperftools, ASAN runs don't use tcmalloc.
export DISABLE_GPERFTOOLS_BUILD=1
sed -i 's#envoy_dependencies()#envoy_dependencies(skip_targets=["tcmalloc_and_profiler"])#' WORKSPACE

# Build Envoy
declare -r EXTRA_BAZEL_FLAGS="$(for f in ${CXXFLAGS}; do echo --copt=$f --linkopt=$f; done)"
declare -r BAZEL_BUILD_TARGETS="$(for t in ${FUZZER_TARGETS}; do echo //"$t"_driverless; done)"
bazel build --verbose_failures --dynamic_mode=off --spawn_strategy=standalone \
--genrule_strategy=standalone --strip=never \
--copt=-fno-sanitize=vptr --linkopt=-fno-sanitize=vptr \
--define tcmalloc=disabled --define signal_trace=disabled \
--define ENVOY_CONFIG_ASAN=1 --copt -D__SANITIZE_ADDRESS__ \
--define force_libcpp=enabled \
--build_tag_filters=-no_asan --test_tag_filters=-no_asan \
${EXTRA_BAZEL_FLAGS} \
--linkopt="-lFuzzingEngine" \
${BAZEL_BUILD_TARGETS}

# Copy out test binaries from bazel-bin/ and zip up related test corpuses.
for t in ${FUZZER_TARGETS}
do
TARGET_PATH="${t/:/\/}"
TARGET_BASE="$(expr "$t" : '.*:\(.*\)_fuzz_test')"
cp bazel-bin/"${TARGET_PATH}"_driverless "${OUT}"/"${TARGET_BASE}"_fuzz_test
zip "${OUT}/${TARGET_BASE}"_fuzz_test_seed_corpus.zip \
"$(dirname "${TARGET_PATH}")"/"${TARGET_BASE}"_corpus/*
done

# Copy dictionaries and options files to $OUT/
for d in $FUZZER_DICTIONARIES; do
cp "$d" "${OUT}"/
done
6 changes: 6 additions & 0 deletions projects/envoy/project.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
homepage: "https://www.envoyproxy.io/"
primary_contact: "[email protected]"
auto_ccs:
- "[email protected]"
- "[email protected]"
- "[email protected]"

0 comments on commit bc77cfe

Please sign in to comment.