diff --git a/projects/libhevc/Dockerfile b/projects/libhevc/Dockerfile new file mode 100644 index 000000000..4b4b08cb2 --- /dev/null +++ b/projects/libhevc/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/libhevc +COPY build.sh $SRC/ +WORKDIR libhevc diff --git a/projects/libhevc/build.sh b/projects/libhevc/build.sh new file mode 100755 index 000000000..31337f1a4 --- /dev/null +++ b/projects/libhevc/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 libhevc +build_dir=$WORK/build +rm -rf ${build_dir} +mkdir -p ${build_dir} +pushd ${build_dir} + +cmake $SRC/libhevc +make -j$(nproc) +popd + +# build fuzzers +$CXX $CXXFLAGS -std=c++11 \ +-I$SRC/libhevc \ +-I$SRC/libhevc/common \ +-I$SRC/libhevc/decoder \ +-I${build_dir} \ +-Wl,--start-group \ +$LIB_FUZZING_ENGINE \ +$SRC/libhevc/fuzzer/hevc_dec_fuzzer.cpp -o $OUT/hevc_dec_fuzzer \ +${build_dir}/libhevcdec.a \ +-Wl,--end-group + +cp $SRC/libhevc/fuzzer/hevc_dec_fuzzer.dict $OUT/hevc_dec_fuzzer.dict diff --git a/projects/libhevc/project.yaml b/projects/libhevc/project.yaml new file mode 100644 index 000000000..20a4f1e30 --- /dev/null +++ b/projects/libhevc/project.yaml @@ -0,0 +1,11 @@ +homepage: "https://android.googlesource.com/platform/external/libhevc/" +primary_contact: "harish.mahendrakar@ittiam.com" +sanitizers: +- address +auto_ccs: +- harish.mahendrakar@ittiam.com +- essick@google.com +- lajos@google.com +architectures: + - x86_64 + - i386