diff options
author | Damien Neil <neild@users.noreply.github.com> | 2019-10-11 11:40:23 -0700 |
---|---|---|
committer | Max Moroz <mmoroz@chromium.org> | 2019-10-11 11:40:23 -0700 |
commit | 7b8279e63467b0578b560aee844787c8437f3186 (patch) | |
tree | 88a67b22386f8ce9babe73a25ea3afd0bff35656 | |
parent | 54cc1468a3d8f84ec710914c4aaf793a64cda0ac (diff) |
[golang-protobuf] Add Dockerfile and build.sh. (#2942)
-rw-r--r-- | projects/golang-protobuf/Dockerfile | 26 | ||||
-rwxr-xr-x | projects/golang-protobuf/build.sh | 17 |
2 files changed, 43 insertions, 0 deletions
diff --git a/projects/golang-protobuf/Dockerfile b/projects/golang-protobuf/Dockerfile new file mode 100644 index 00000000..be337f80 --- /dev/null +++ b/projects/golang-protobuf/Dockerfile @@ -0,0 +1,26 @@ +# Copyright 2019 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 dneil@google.com + +ENV GO111MODULE="on" +ENV GOFUZZ111MODULE="on" + +RUN go get google.golang.org/protobuf/proto +RUN git clone https://go.googlesource.com/protobuf $SRC/protobuf +COPY build.sh $SRC/ +WORKDIR $SRC/protobuf diff --git a/projects/golang-protobuf/build.sh b/projects/golang-protobuf/build.sh new file mode 100755 index 00000000..67774abc --- /dev/null +++ b/projects/golang-protobuf/build.sh @@ -0,0 +1,17 @@ +function compile_fuzzer { + path=$1 + function=$2 + fuzzer=$3 + + # Instrument all Go files relevant to this fuzzer + go-fuzz-build -libfuzzer -func $function -o $fuzzer.a $path + + # Instrumented, compiled Go ($fuzzer.a) + fuzzing engine = fuzzer binary + $CXX $CXXFLAGS $LIB_FUZZING_ENGINE $fuzzer.a -lpthread -o $OUT/$fuzzer +} + +for x in internal/fuzz/*; do + if [ -d $x ]; then + compile_fuzzer ./$x Fuzz $(basename $x)_fuzzer + fi +done |