diff --git a/projects/skcms/Dockerfile b/projects/skcms/Dockerfile new file mode 100644 index 000000000..797a00bb8 --- /dev/null +++ b/projects/skcms/Dockerfile @@ -0,0 +1,32 @@ +# 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 kjlubick@chromium.org + +RUN apt-get update && apt-get install -y wget + +# checkout all sources needed to build your project +RUN git clone https://skia.googlesource.com/skcms.git + +RUN wget -O $SRC/skcms/iccprofile_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/iccprofile_seed_corpus.zip + +# current directory for build script +WORKDIR skcms + +COPY build.sh $SRC/ + +COPY iccprofile.options $SRC/skcms/ \ No newline at end of file diff --git a/projects/skcms/build.sh b/projects/skcms/build.sh new file mode 100644 index 000000000..af8e58f83 --- /dev/null +++ b/projects/skcms/build.sh @@ -0,0 +1,30 @@ +#!/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. +# +################################################################################ + +$CC -c $CFLAGS skcms.c fuzz/fuzz_iccprofile_info.c fuzz/fuzz_iccprofile_atf.c fuzz/fuzz_iccprofile_transform.c -DIS_FUZZING_WITH_LIBFUZZER +$CXX $CXXFLAGS skcms.o fuzz_iccprofile_info.o $LIB_FUZZING_ENGINE -o $OUT/iccprofile_info +$CXX $CXXFLAGS skcms.o fuzz_iccprofile_atf.o $LIB_FUZZING_ENGINE -o $OUT/iccprofile_atf +$CXX $CXXFLAGS skcms.o fuzz_iccprofile_transform.o $LIB_FUZZING_ENGINE -o $OUT/iccprofile_transform + +# They share the same options +cp iccprofile.options $OUT/iccprofile_info.options +cp iccprofile.options $OUT/iccprofile_atf.options +cp iccprofile.options $OUT/fuzz_iccprofile_transform.options +# They all share the same seed corpus of icc profiles +cp iccprofile_seed_corpus.zip $OUT/iccprofile_info_seed_corpus.zip +cp iccprofile_seed_corpus.zip $OUT/iccprofile_atf_seed_corpus.zip +cp iccprofile_seed_corpus.zip $OUT/iccprofile_transform_seed_corpus.zip \ No newline at end of file diff --git a/projects/skcms/iccprofile.options b/projects/skcms/iccprofile.options new file mode 100644 index 000000000..0bde038f2 --- /dev/null +++ b/projects/skcms/iccprofile.options @@ -0,0 +1,3 @@ +[libfuzzer] +max_len = 10024 +timeout = 10 diff --git a/projects/skcms/project.yaml b/projects/skcms/project.yaml new file mode 100644 index 000000000..36dd8b1af --- /dev/null +++ b/projects/skcms/project.yaml @@ -0,0 +1,10 @@ +homepage: "https://skia.googlesource.com/skcms/+/master" +primary_contact: "kjlubick@chromium.org" +auto_ccs: + - "mtklein@chromium.org" + - "brianosman@chromium.org" +sanitizers: + - address + - memory + - undefined: + experimental: True