diff options
author | Mike Aizatsky <mike.aizatsky@gmail.com> | 2016-11-29 10:55:25 -0800 |
---|---|---|
committer | Mike Aizatsky <mike.aizatsky@gmail.com> | 2016-11-29 10:55:25 -0800 |
commit | a143b9b39a51412d133f846688194d68fe4197ba (patch) | |
tree | 936eb7e6c320fb7066f0da416727ebab8ce4668c /projects/woff2 | |
parent | 330c900781b1a8abde12e5478bb85854da48afc2 (diff) |
[infra] renaming targets/ to projects/
Diffstat (limited to 'projects/woff2')
-rw-r--r-- | projects/woff2/Dockerfile | 23 | ||||
-rwxr-xr-x | projects/woff2/build.sh | 40 | ||||
-rw-r--r-- | projects/woff2/convert_woff2ttf_fuzzer.cc | 17 | ||||
-rw-r--r-- | projects/woff2/convert_woff2ttf_fuzzer.options | 2 | ||||
-rw-r--r-- | projects/woff2/target.yaml | 1 |
5 files changed, 83 insertions, 0 deletions
diff --git a/projects/woff2/Dockerfile b/projects/woff2/Dockerfile new file mode 100644 index 00000000..cf7066fd --- /dev/null +++ b/projects/woff2/Dockerfile @@ -0,0 +1,23 @@ +# Copyright 2016 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 ossfuzz/base-libfuzzer +MAINTAINER mmoroz@chromium.org +RUN apt-get install -y make autoconf automake libtool + +RUN git clone --recursive https://github.com/google/woff2 +WORKDIR woff2 +COPY build.sh convert_woff2ttf_fuzzer.* $SRC/ diff --git a/projects/woff2/build.sh b/projects/woff2/build.sh new file mode 100755 index 00000000..6d113559 --- /dev/null +++ b/projects/woff2/build.sh @@ -0,0 +1,40 @@ +#!/bin/bash -eu +# Copyright 2016 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 the library. Actually there is no 'library' target, so we use .o files. +# '-no-canonical-prefixes' flag makes clang crazy. Need to avoid it. +cat brotli/shared.mk | sed -e "s/-no-canonical-prefixes//" \ +> brotli/shared.mk.temp +mv brotli/shared.mk.temp brotli/shared.mk + +cat Makefile | sed -e "s/-no-canonical-prefixes//" \ +> Makefile.temp +mv Makefile.temp Makefile + +# woff2 uses LFLAGS instead of LDFLAGS. +make -j$(nproc) CC="$CC $CFLAGS" CXX="$CXX $CXXFLAGS" clean all + +# To avoid multiple main() definitions. +rm src/woff2_compress.o src/woff2_decompress.o + +# Build the fuzzer. +fuzzer=convert_woff2ttf_fuzzer +$CXX $CXXFLAGS -std=c++11 -Isrc \ + $SRC/$fuzzer.cc -o $OUT/$fuzzer \ + -lfuzzer src/*.o brotli/dec/*.o brotli/enc/*.o + +cp $SRC/*.options $OUT/ diff --git a/projects/woff2/convert_woff2ttf_fuzzer.cc b/projects/woff2/convert_woff2ttf_fuzzer.cc new file mode 100644 index 00000000..1c81e32e --- /dev/null +++ b/projects/woff2/convert_woff2ttf_fuzzer.cc @@ -0,0 +1,17 @@ +// Copyright 2015 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include <stddef.h> +#include <stdint.h> + +#include "woff2_dec.h" + +// Entry point for LibFuzzer. +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { + std::string buf; + woff2::WOFF2StringOut out(&buf); + out.SetMaxSize(30 * 1024 * 1024); + woff2::ConvertWOFF2ToTTF(data, size, &out); + return 0; +} diff --git a/projects/woff2/convert_woff2ttf_fuzzer.options b/projects/woff2/convert_woff2ttf_fuzzer.options new file mode 100644 index 00000000..e5ae71b9 --- /dev/null +++ b/projects/woff2/convert_woff2ttf_fuzzer.options @@ -0,0 +1,2 @@ +[libfuzzer] +max_len = 1000000 diff --git a/projects/woff2/target.yaml b/projects/woff2/target.yaml new file mode 100644 index 00000000..403d2536 --- /dev/null +++ b/projects/woff2/target.yaml @@ -0,0 +1 @@ +homepage: "https://github.com/google/woff2" |