From 44a3cdf6fc02a569bbd7c3b2af531cee4e579258 Mon Sep 17 00:00:00 2001 From: Mohammed Al Sahaf Date: Wed, 12 May 2021 19:08:09 +0000 Subject: [PATCH] caddy: add new project (#5624) --- projects/caddy/Dockerfile | 22 +++++++++++++++++++ projects/caddy/build.sh | 43 +++++++++++++++++++++++++++++++++++++ projects/caddy/project.yaml | 10 +++++++++ 3 files changed, 75 insertions(+) create mode 100644 projects/caddy/Dockerfile create mode 100644 projects/caddy/build.sh create mode 100644 projects/caddy/project.yaml diff --git a/projects/caddy/Dockerfile b/projects/caddy/Dockerfile new file mode 100644 index 000000000..f4ed8ea95 --- /dev/null +++ b/projects/caddy/Dockerfile @@ -0,0 +1,22 @@ +# Copyright 2021 Google LLC +# +# 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 + +RUN git clone --depth 1 https://github.com/caddyserver/caddy $GOPATH/src/github.com/caddyserver/caddy/v2 + +COPY build.sh $SRC/ +WORKDIR $SRC/caddy diff --git a/projects/caddy/build.sh b/projects/caddy/build.sh new file mode 100644 index 000000000..f51631030 --- /dev/null +++ b/projects/caddy/build.sh @@ -0,0 +1,43 @@ +#!/bin/bash -eu +# Copyright 2021 Google LLC +# +# 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. +# +################################################################################ + +if [[ $SANITIZER = *coverage* ]]; then + # we don't support 'coverage' sanitizer yet because + # compile_go_fuzzer doesn't seem to like SIV. + # TODO: investigate proper fix for either + exit 0 +fi + +cd "$GOPATH"/src/github.com/caddyserver/caddy/v2 + +find . -name '*_fuzz.go' | while read -r target +do +# Arguments are : +# path of the package with the fuzz target +# name of the fuzz function +# name of the fuzzer to be built +# optional tag to be used by go build and such + + fuzzed_func=$(grep -o "Fuzz[a-zA-Z]\+" "$target") + fuzzer_name=$(echo "$fuzzed_func" | sed -E 's/([A-Z])/-\L\1/g' | sed 's/^-//') + # find the relative directory and remove the first `.` (`./` is removed for root) + target_dir=$(dirname "$target"); target_dir="${target_dir//.}"; + target_corpus_name="${fuzzer_name}_seed_corpus.zip" + + curl -s -f -O "https://raw.githubusercontent.com/caddyserver/caddy/fuzz-seed-corpus/${target_corpus_name}" || true + compile_go_fuzzer github.com/caddyserver/caddy/v2"$target_dir" "$fuzzed_func" "$fuzzer_name" gofuzz +done diff --git a/projects/caddy/project.yaml b/projects/caddy/project.yaml new file mode 100644 index 000000000..d229dba34 --- /dev/null +++ b/projects/caddy/project.yaml @@ -0,0 +1,10 @@ +homepage: "https://caddyserver.com/" +language: go +primary_contact: "msaa1990@gmail.com" +auto_ccs: + - "Adam@adalogics.com" +fuzzing_engines: + - libfuzzer +sanitizers: + - address +main_repo: "https://github.com/caddyserver/caddy.git" \ No newline at end of file