From e32b7167540728bccffb4d1ef7ebb73eb633c741 Mon Sep 17 00:00:00 2001 From: Nathan Moinvaziri Date: Thu, 25 Jun 2020 16:56:26 -0700 Subject: [PATCH] Added fuzzer for c-blosc2 (#3989) --- projects/c-blosc2/Dockerfile | 22 ++++++++++++++++++++++ projects/c-blosc2/build.sh | 29 +++++++++++++++++++++++++++++ projects/c-blosc2/project.yaml | 12 ++++++++++++ 3 files changed, 63 insertions(+) create mode 100644 projects/c-blosc2/Dockerfile create mode 100755 projects/c-blosc2/build.sh create mode 100644 projects/c-blosc2/project.yaml diff --git a/projects/c-blosc2/Dockerfile b/projects/c-blosc2/Dockerfile new file mode 100644 index 000000000..16adaa45f --- /dev/null +++ b/projects/c-blosc2/Dockerfile @@ -0,0 +1,22 @@ +# 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 blosc.oss.fuzz@gmail.com +RUN apt-get update && apt-get install -y make autoconf automake libtool cmake +RUN git clone --depth 1 https://github.com/Blosc/c-blosc2.git c-blosc2 +WORKDIR c-blosc2 +COPY build.sh $SRC/ \ No newline at end of file diff --git a/projects/c-blosc2/build.sh b/projects/c-blosc2/build.sh new file mode 100755 index 000000000..4b1a5a6d3 --- /dev/null +++ b/projects/c-blosc2/build.sh @@ -0,0 +1,29 @@ +#!/bin/bash -eu +# 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. +# +################################################################################ + +# Build project +cmake . -DCMAKE_C_FLAGS="$CFLAGS" -DCMAKE_CXX_FLAGS="$CXXFLAGS" -DBUILD_FUZZERS=ON +make clean +make -j$(nproc) + +# Package seed corpus +zip -j $OUT/decompress_fuzzer_seed_corpus.zip compat/*.cdata + +# Copy the fuzzer executables, zip-ed corpora, and dictionary files to $OUT +find . -name '*_fuzzer' -exec cp -v '{}' $OUT ';' +find . -name '*_fuzzer.dict' -exec cp -v '{}' $OUT ';' +find . -name '*_fuzzer_seed_corpus.zip' -exec cp -v '{}' $OUT ';' \ No newline at end of file diff --git a/projects/c-blosc2/project.yaml b/projects/c-blosc2/project.yaml new file mode 100644 index 000000000..1a1e6412e --- /dev/null +++ b/projects/c-blosc2/project.yaml @@ -0,0 +1,12 @@ +homepage: "https://github.com/Blosc/c-blosc2" +language: c++ +primary_contact: "blosc.oss.fuzz@gmail.com" +auto_ccs: + - "nathan.moinvaziri@gmail.com" +sanitizers: + - address + - memory + - undefined +architectures: + - x86_64 + - i386