diff options
author | 2020-11-25 18:00:19 +0100 | |
---|---|---|
committer | 2020-11-25 09:00:19 -0800 | |
commit | e883ecfb482c527d875e8a1a4c6448287bae237f (patch) | |
tree | 1d0ccf2d51db5c31247474ccbc9dd119ac07afe8 /projects | |
parent | efd77dbe90257f1759b089772404c4376590f11b (diff) |
pillow, golang updates (#4692)
* [pillow] Remove project.
Despite my best efforts this has never worked properly.
No reward was ever requested or given for this integration.
* [golang] Remove my e-mail address
I helped integrate this project. I'm no longer involved with this project
and don't need to receive bug reports.
Diffstat (limited to 'projects')
-rw-r--r-- | projects/golang/project.yaml | 3 | ||||
-rw-r--r-- | projects/pillow/Dockerfile | 23 | ||||
-rwxr-xr-x | projects/pillow/build.sh | 112 | ||||
-rw-r--r-- | projects/pillow/project.yaml | 13 |
4 files changed, 1 insertions, 150 deletions
diff --git a/projects/golang/project.yaml b/projects/golang/project.yaml index 939f457a..e665a71f 100644 --- a/projects/golang/project.yaml +++ b/projects/golang/project.yaml @@ -1,7 +1,6 @@ homepage: "https://golang.org/" -primary_contact: "guidovranken@gmail.com" +primary_contact: "golang-fuzz@googlegroups.com" auto_ccs: - - "golang-fuzz@googlegroups.com" - "mmoroz@chromium.org" - "josharian@gmail.com" language: go diff --git a/projects/pillow/Dockerfile b/projects/pillow/Dockerfile deleted file mode 100644 index 33e811c7..00000000 --- a/projects/pillow/Dockerfile +++ /dev/null @@ -1,23 +0,0 @@ -# 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 -RUN apt-get update && apt-get install -y make autoconf automake build-essential libbz2-dev libc6-dev libffi-dev libfreetype6-dev libgdbm-dev libjpeg-turbo8-dev liblcms2-dev libncursesw5-dev libreadline-dev libsqlite3-dev libssl-dev libtiff5-dev libtool libwebp-dev make python python-dev python-setuptools tk-dev wget zlib1g-dev libwebp-dev -RUN wget https://github.com/python/cpython/archive/v3.8.1.tar.gz -RUN git clone --depth 1 https://github.com/python-pillow/Pillow.git pillow -RUN git clone --depth 1 https://github.com/guidovranken/oss-fuzz-fuzzers -WORKDIR pillow -COPY build.sh $SRC/ diff --git a/projects/pillow/build.sh b/projects/pillow/build.sh deleted file mode 100755 index 1bee1d7a..00000000 --- a/projects/pillow/build.sh +++ /dev/null @@ -1,112 +0,0 @@ -#!/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. -# -################################################################################ - -# Because Pillow's "./setup.py build_ext --inplace" does not work with custom CC and CFLAGS, -# it is necessary to build in the following manner: -# -# Build CPython without instrumentation/sanitization -# Build Pillow in a virtualenv based on uninstrumented and unsanitized CPython. Log the build steps to build.sh -# Build CPython with instrumentation/sanitization -# Rewrite build.sh to compile Pillow based on CPython with instrumentation/sanitization -# -# Why not build Pillow directly with a virtualenv based on instrumented CPython? -# Because the virtualenv will inherit CC and CFLAGS of the instrumented CPython, and that will fail. - -cd $SRC/ -tar zxf v3.8.1.tar.gz -cd cpython-3.8.1/ - -# Ignore memory leaks from python scripts invoked in the build -export ASAN_OPTIONS="detect_leaks=0" -export MSAN_OPTIONS="halt_on_error=0:exitcode=0:report_umrs=0" - -# Remove -pthread from CFLAGS, this trips up ./configure -# which thinks pthreads are available without any CLI flags -CFLAGS=${CFLAGS//"-pthread"/} - -FLAGS=() -case $SANITIZER in - address) - FLAGS+=("--with-address-sanitizer") - ;; - memory) - FLAGS+=("--with-memory-sanitizer") - # installing ensurepip takes a while with MSAN instrumentation, so - # we disable it here - FLAGS+=("--without-ensurepip") - # -msan-keep-going is needed to allow MSAN's halt_on_error to function - FLAGS+=("CFLAGS=-mllvm -msan-keep-going=1") - ;; - undefined) - FLAGS+=("--with-undefined-behavior-sanitizer") - ;; -esac - -export CPYTHON_INSTALL_PATH=$OUT/cpython-install -rm -rf $CPYTHON_INSTALL_PATH -mkdir $CPYTHON_INSTALL_PATH - -export CPYTHON_UNINSTRUMENTED_INSTALL_PATH=$OUT/cpython-install -rm -rf $CPYTHON_UNINSTRUMENTED_INSTALL_PATH -mkdir $CPYTHON_UNINSTRUMENTED_INSTALL_PATH - -cd $SRC/ -tar zxf v3.8.1.tar.gz - -# Compile uninstrumented CPython -cp -R $SRC/cpython-3.8.1/ $SRC/cpython-3.8.1-uninstrumented -cd $SRC/cpython-3.8.1-uninstrumented -CFLAGS="" CXXFLAGS="" ./configure --prefix=$CPYTHON_UNINSTRUMENTED_INSTALL_PATH -CFLAGS="" CXXFLAGS="" make -j$(nproc) -CFLAGS="" CXXFLAGS="" make install - -# Compile instrumented CPython -cd $SRC/cpython-3.8.1/ -cp $SRC/oss-fuzz-fuzzers/pillow/python_coverage.h Python/ - -# Patch the interpreter to record code coverage -sed -i '1 s/^.*$/#include "python_coverage.h"/g' Python/ceval.c -sed -i 's/case TARGET\(.*\): {/\0\nfuzzer_record_code_coverage(f->f_code, f->f_lasti);/g' Python/ceval.c - -./configure "${FLAGS[@]}" --prefix=$CPYTHON_INSTALL_PATH -make -j$(nproc) -make install - -# Compile Pillow fuzzers -cd $SRC/oss-fuzz-fuzzers/pillow -rm $CPYTHON_INSTALL_PATH/lib/python3.8/lib-dynload/_tkinter*.so -make -cp $SRC/oss-fuzz-fuzzers/pillow/fuzzer-loadimg $OUT/ -cp $SRC/oss-fuzz-fuzzers/pillow/loadimg.py $OUT/ - -# Create venv for Pillow compilation -$CPYTHON_UNINSTRUMENTED_INSTALL_PATH/bin/python3 -m venv $SRC/venv -source $SRC/venv/bin/activate - -# Compile Pillow -cd $SRC/pillow -CFLAGS="" CXXFLAGS="" ./setup.py build_ext --inplace >build.sh -grep "^\(gcc\|x86_64-linux-gnu-gcc\|clang\) " build.sh | sed 's/^\(gcc\|x86_64-linux-gnu-gcc\|clang\) /$CC $CFLAGS /g' | sed 's/-DPILLOW_VERSION="\([^"]\+\)"/-DPILLOW_VERSION="\\"\1\\""/g' >build2.sh -bash build2.sh -cp -R $SRC/pillow $OUT/ -cp /usr/lib/x86_64-linux-gnu/libjpeg.so.8 $OUT/ -cp /usr/lib/x86_64-linux-gnu/libtiff.so.5 $OUT/ -cp /usr/lib/x86_64-linux-gnu/libjbig.so.0 $OUT/ -cp /usr/lib/x86_64-linux-gnu/libwebp.so.5 $OUT/ -cp /usr/lib/x86_64-linux-gnu/libwebpmux.so.1 $OUT/ -cp /usr/lib/x86_64-linux-gnu/libwebpdemux.so.1 $OUT/ -cp $SRC/oss-fuzz-fuzzers/pillow/corpus.zip $OUT/fuzzer-loadimg_seed_corpus.zip diff --git a/projects/pillow/project.yaml b/projects/pillow/project.yaml deleted file mode 100644 index fb42d4c1..00000000 --- a/projects/pillow/project.yaml +++ /dev/null @@ -1,13 +0,0 @@ -homepage: "https://python-pillow.org/" -language: c++ -primary_contact: "guidovranken@gmail.com" -auto_ccs: - - "security@python-pillow.org" -sanitizers: - - address - - undefined -architectures: - - x86_64 -fuzzing_engines: - - libfuzzer - - honggfuzz |