diff options
author | tsdgeos <aacid@kde.org> | 2019-03-31 20:04:40 +0200 |
---|---|---|
committer | Max Moroz <dor3s1@gmail.com> | 2019-03-31 11:04:40 -0700 |
commit | 5f2ed9d55000ba208f8a9069e47186895c39fbc3 (patch) | |
tree | 9b53c1ca59767d4f6592e98e394e73118b6a3cda | |
parent | 080a64aca06aebed794e6e3ce9b4e6688bf82d6d (diff) | |
download | oss-fuzz-5f2ed9d55000ba208f8a9069e47186895c39fbc3.tar.gz |
[kimageformats] Include ora and kra handlers (#2277)
This pulls karchive that pulls, ecm and libzip and libzip pulls zlib
-rw-r--r-- | projects/kimageformats/Dockerfile | 5 | ||||
-rw-r--r-- | projects/kimageformats/build.sh | 22 | ||||
-rw-r--r-- | projects/kimageformats/kimgio_fuzzer.cc | 4 |
3 files changed, 30 insertions, 1 deletions
diff --git a/projects/kimageformats/Dockerfile b/projects/kimageformats/Dockerfile index 7a826aab5..5dd3dfac7 100644 --- a/projects/kimageformats/Dockerfile +++ b/projects/kimageformats/Dockerfile @@ -16,7 +16,12 @@ FROM gcr.io/oss-fuzz-base/base-builder MAINTAINER tsdgeos@gmail.com +RUN apt-get install --yes cmake +RUN git clone --depth 1 https://github.com/madler/zlib.git +RUN git clone --depth 1 https://github.com/nih-at/libzip.git +RUN git clone --depth 1 git://anongit.kde.org/extra-cmake-modules RUN git clone --depth 1 git://code.qt.io/qt/qtbase.git +RUN git clone --depth 1 git://anongit.kde.org/karchive RUN git clone --depth 1 git://anongit.kde.org/kimageformats COPY build.sh $SRC COPY kimgio_fuzzer.cc $SRC diff --git a/projects/kimageformats/build.sh b/projects/kimageformats/build.sh index d8bd1e3ab..d71bed0b7 100644 --- a/projects/kimageformats/build.sh +++ b/projects/kimageformats/build.sh @@ -1,4 +1,19 @@ cd $SRC +cd zlib +./configure --static +make install -j$(nproc) + +cd $SRC +cd libzip +cmake . -DBUILD_SHARED_LIBS=OFF +make install -j$(nproc) + +cd $SRC +cd extra-cmake-modules +cmake . +make install -j$(nproc) + +cd $SRC cd qtbase # add the flags to Qt build too, we may as well sanitize Qt too (and also fixes memory sanitizer build) sed -i -e "s/QMAKE_CXXFLAGS += -stdlib=libc++/QMAKE_CXXFLAGS += -stdlib=libc++ $CXXFLAGS/g" mkspecs/linux-clang-libc++/qmake.conf @@ -12,6 +27,11 @@ cd src ../bin/qmake -o Makefile src.pro make sub-gui -j$(nproc) -$CXX $CXXFLAGS -fPIC -std=c++11 $SRC/kimgio_fuzzer.cc $SRC/kimageformats/src/imageformats/pcx.cpp $SRC/kimageformats/src/imageformats/pic.cpp $SRC/kimageformats/src/imageformats/psd.cpp $SRC/kimageformats/src/imageformats/ras.cpp $SRC/kimageformats/src/imageformats/rgb.cpp $SRC/kimageformats/src/imageformats/tga.cpp $SRC/kimageformats/src/imageformats/xcf.cpp -o $OUT/kimgio_fuzzer -I $SRC/qtbase/include/QtCore/ -I $SRC/qtbase/include/ -I $SRC/qtbase/include//QtGui -I $SRC/kimageformats/src/imageformats/ -L $SRC/qtbase/lib -lQt5Gui -lQt5Core -lqtlibpng -lqtharfbuzz -lm -lqtpcre2 -ldl -lpthread -lFuzzingEngine +cd $SRC +cd karchive +cmake . -DBUILD_SHARED_LIBS=OFF -DQt5Core_DIR=$SRC/qtbase/lib/cmake/Qt5Core/ -DBUILD_TESTING=OFF +make install -j$(nproc) + +$CXX $CXXFLAGS -fPIC -std=c++11 $SRC/kimgio_fuzzer.cc $SRC/kimageformats/src/imageformats/kra.cpp $SRC/kimageformats/src/imageformats/ora.cpp $SRC/kimageformats/src/imageformats/pcx.cpp $SRC/kimageformats/src/imageformats/pic.cpp $SRC/kimageformats/src/imageformats/psd.cpp $SRC/kimageformats/src/imageformats/ras.cpp $SRC/kimageformats/src/imageformats/rgb.cpp $SRC/kimageformats/src/imageformats/tga.cpp $SRC/kimageformats/src/imageformats/xcf.cpp -o $OUT/kimgio_fuzzer -I $SRC/qtbase/include/QtCore/ -I $SRC/qtbase/include/ -I $SRC/qtbase/include//QtGui -I $SRC/kimageformats/src/imageformats/ -I $SRC/karchive/src/ -I $SRC/qtbase/mkspecs/linux-clang-libc++/ -L $SRC/qtbase/lib -lQt5Gui -lQt5Core -lqtlibpng -lqtharfbuzz -lm -lqtpcre2 -ldl -lpthread -lFuzzingEngine /usr/local/lib/libzip.a /usr/local/lib/libz.a -lKF5Archive zip -qr $OUT/kimgio_fuzzer_seed_corpus.zip $SRC/kimageformats/autotests/read/ $SRC/kimageformats/autotests/write/ $SRC/kimageformats/autotests/pic/ diff --git a/projects/kimageformats/kimgio_fuzzer.cc b/projects/kimageformats/kimgio_fuzzer.cc index eedd48215..ca74dc1a3 100644 --- a/projects/kimageformats/kimgio_fuzzer.cc +++ b/projects/kimageformats/kimgio_fuzzer.cc @@ -28,6 +28,8 @@ #include <QCoreApplication> #include <QImage> +#include "kra.h" +#include "ora.h" #include "pcx_p.h" #include "pic_p.h" #include "psd_p.h" @@ -42,6 +44,8 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) QCoreApplication a(argc, nullptr); const QVector<QImageIOHandler*> handlers = { + new KraHandler(), + new OraHandler(), new PCXHandler(), new SoftimagePICHandler(), new PSDHandler(), |