diff --git a/projects/libavc/Dockerfile b/projects/libavc/Dockerfile new file mode 100644 index 000000000..c00950616 --- /dev/null +++ b/projects/libavc/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 harish.mahendrakar@ittiam.com +RUN apt-get update && apt-get install -y wget cmake +RUN git clone https://android.googlesource.com/platform/external/libavc +COPY build.sh avc_dec_fuzzer.dict $SRC/ +WORKDIR libavc diff --git a/projects/libavc/avc_dec_fuzzer.dict b/projects/libavc/avc_dec_fuzzer.dict new file mode 100644 index 000000000..f436f2002 --- /dev/null +++ b/projects/libavc/avc_dec_fuzzer.dict @@ -0,0 +1,2 @@ +# Start code (bytes 0-3) +kw1="\x00\x00\x00\x01" diff --git a/projects/libavc/build.sh b/projects/libavc/build.sh new file mode 100755 index 000000000..8ce456c2d --- /dev/null +++ b/projects/libavc/build.sh @@ -0,0 +1,40 @@ +#!/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 libavc +build_dir=$WORK/build +rm -rf ${build_dir} +mkdir -p ${build_dir} +pushd ${build_dir} + +cmake $SRC/libavc +make -j$(nproc) +popd + +# build fuzzers +$CXX $CXXFLAGS -std=c++11 \ + -I$SRC/libavc \ + -I$SRC/libavc/common \ + -I$SRC/libavc/decoder \ + -I${build_dir} \ + -Wl,--start-group \ + $LIB_FUZZING_ENGINE \ + $SRC/libavc/fuzzer/avc_dec_fuzzer.cpp -o $OUT/avc_dec_fuzzer \ + ${build_dir}/libavcdec.a \ + -Wl,--end-group + +cp $SRC/avc_dec_fuzzer.dict $OUT/avcdec_fuzzer.dict diff --git a/projects/libavc/project.yaml b/projects/libavc/project.yaml new file mode 100644 index 000000000..a40b01f04 --- /dev/null +++ b/projects/libavc/project.yaml @@ -0,0 +1,11 @@ +homepage: "https://android.googlesource.com/platform/external/libavc/" +primary_contact: "harish.mahendrakar@ittiam.com" +sanitizers: +- address +auto_ccs: +- harish.mahendrakar@ittiam.com +- essick@google.com +- lajos@google.com +architectures: + - x86_64 + - i386