diff options
author | 2019-06-19 14:27:14 -0400 | |
---|---|---|
committer | 2019-06-19 11:27:14 -0700 | |
commit | 1bc969649190b9e46e6844ed1e9271adf397b9dc (patch) | |
tree | aa3bcfad1bc670e8a79b0e8b6973312fac349644 /projects/speex | |
parent | 0b5ff023aa1fb963de12a269ee7300c221478bb6 (diff) |
[speex] add fuzzer targets (#2529)
* [speex] Add Dockerfile and build.sh
* [speex] add fixed-point fuzz target
* [speex] make corpus files discoverable
* [speex] use $LIB_FUZZING_ENGINE
* [speex] copy instead of making a link
Diffstat (limited to 'projects/speex')
-rw-r--r-- | projects/speex/Dockerfile | 23 | ||||
-rw-r--r-- | projects/speex/build.sh | 44 | ||||
-rw-r--r-- | projects/speex/project.yaml | 6 |
3 files changed, 73 insertions, 0 deletions
diff --git a/projects/speex/Dockerfile b/projects/speex/Dockerfile new file mode 100644 index 00000000..05a42531 --- /dev/null +++ b/projects/speex/Dockerfile @@ -0,0 +1,23 @@ +# 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 tmatth@videolan.org +RUN apt-get update && apt-get install -y make autoconf libtool pkg-config wget +RUN git clone https://git.xiph.org/ogg.git +RUN git clone https://git.xiph.org/speex.git speex +WORKDIR speex +COPY build.sh $SRC/ diff --git a/projects/speex/build.sh b/projects/speex/build.sh new file mode 100644 index 00000000..8b319ed0 --- /dev/null +++ b/projects/speex/build.sh @@ -0,0 +1,44 @@ +#!/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. +# +################################################################################ + +pushd $SRC/ogg +./autogen.sh +./configure --prefix="$WORK" --enable-static --disable-shared --disable-crc +make clean +make -j$(nproc) +make install +popd + +./autogen.sh +export CFLAGS="$CFLAGS -DDISABLE_NOTIFICATIONS -DDISABLE_WARNINGS" +# Build fixed-point fuzzer +PKG_CONFIG_PATH="$WORK"/lib/pkgconfig ./configure --prefix="$WORK" --enable-static --disable-shared --enable-fixed +make -j$(nproc) +make install +$CXX $CXXFLAGS contrib/oss-fuzz/speexdec_fuzzer.cc -o $OUT/speex_decode_fuzzer_fixed -L"$WORK/lib" -I"$WORK/include" $LIB_FUZZING_ENGINE -lspeex -logg +# Build floating-point fuzzer +PKG_CONFIG_PATH="$WORK"/lib/pkgconfig ./configure --prefix="$WORK" --enable-static --disable-shared +make -j$(nproc) +make install +$CXX $CXXFLAGS contrib/oss-fuzz/speexdec_fuzzer.cc -o $OUT/speex_decode_fuzzer_float -L"$WORK/lib" -I"$WORK/include" $LIB_FUZZING_ENGINE -lspeex -logg + +# build samples and prepare corpus +cd src/ +./generate-samples.sh +zip -j0r ${OUT}/speex_decode_fuzzer_fixed_seed_corpus.zip ./samples/ +cp ${OUT}/speex_decode_fuzzer_fixed_seed_corpus.zip ${OUT}/speex_decode_fuzzer_float_seed_corpus.zip +cd .. diff --git a/projects/speex/project.yaml b/projects/speex/project.yaml index 70618b77..914bd56b 100644 --- a/projects/speex/project.yaml +++ b/projects/speex/project.yaml @@ -1,2 +1,8 @@ homepage: "https://speex.org/" primary_contact: "tmatth@videolan.org" +auto_ccs: + - "twsmith@mozilla.com" +sanitizers: + - address + - memory + - undefined |