diff --git a/projects/pillow/Dockerfile b/projects/pillow/Dockerfile index ab9089553..86812ab63 100644 --- a/projects/pillow/Dockerfile +++ b/projects/pillow/Dockerfile @@ -15,19 +15,6 @@ ################################################################################ FROM gcr.io/oss-fuzz-base/base-builder -RUN git clone --depth 1 https://github.com/google/fuzzing -RUN cat fuzzing/dictionaries/bmp.dict \ - fuzzing/dictionaries/dds.dict \ - fuzzing/dictionaries/gif.dict \ - fuzzing/dictionaries/icns.dict \ - fuzzing/dictionaries/jpeg.dict \ - fuzzing/dictionaries/jpeg2000.dict \ - fuzzing/dictionaries/pbm.dict \ - fuzzing/dictionaries/png.dict \ - fuzzing/dictionaries/psd.dict \ - fuzzing/dictionaries/tiff.dict \ - fuzzing/dictionaries/webp.dict \ - > $OUT/fuzz_pillow.dict # library build dependencies RUN apt-get update && \ @@ -40,6 +27,8 @@ RUN apt-get update && \ RUN git clone --depth 1 https://github.com/python-pillow/Pillow RUN git clone --depth 1 https://github.com/python-pillow/pillow-wheels +RUN $SRC/Pillow/Tests/oss-fuzz/build_dictionaries.sh + COPY build_depends.sh $SRC RUN ln -s /usr/local/bin/python3 /usr/local/bin/python \ diff --git a/projects/pillow/build.sh b/projects/pillow/build.sh index e7dac3463..4656c7cab 100644 --- a/projects/pillow/build.sh +++ b/projects/pillow/build.sh @@ -15,33 +15,4 @@ # ################################################################################ -python3 setup.py build --build-base=/tmp/build install - -# Build fuzzers in $OUT. -for fuzzer in $(find $SRC -name 'fuzz_*.py'); do - fuzzer_basename=$(basename -s .py $fuzzer) - fuzzer_package=${fuzzer_basename}.pkg - pyinstaller \ - --add-binary /usr/local/lib/libjpeg.so.9:. \ - --add-binary /usr/local/lib/libfreetype.so.6:. \ - --add-binary /usr/local/lib/liblcms2.so.2:. \ - --add-binary /usr/local/lib/libopenjp2.so.7:. \ - --add-binary /usr/local/lib/libpng16.so.16:. \ - --add-binary /usr/local/lib/libtiff.so.5:. \ - --add-binary /usr/local/lib/libwebp.so.7:. \ - --add-binary /usr/local/lib/libwebpdemux.so.2:. \ - --add-binary /usr/local/lib/libwebpmux.so.3:. \ - --add-binary /usr/local/lib/libxcb.so.1:. \ - --distpath $OUT --onefile --name $fuzzer_package $fuzzer - - # Create execution wrapper. - echo "#!/bin/sh -# LLVMFuzzerTestOneInput for fuzzer detection. -this_dir=\$(dirname \"\$0\") -LD_PRELOAD=\$this_dir/sanitizer_with_fuzzer.so \ -ASAN_OPTIONS=\$ASAN_OPTIONS:symbolize=1:external_symbolizer_path=\$this_dir/llvm-symbolizer:detect_leaks=0 \ -\$this_dir/$fuzzer_package \$@" > $OUT/$fuzzer_basename - chmod u+x $OUT/$fuzzer_basename -done - -find Tests/images Tests/icc Tests/fonts -print | zip -q $OUT/fuzz_pillow_seed_corpus.zip -@ +./Tests/oss-fuzz/build.sh