aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortsdgeos <aacid@kde.org>2019-03-31 20:04:40 +0200
committerMax Moroz <dor3s1@gmail.com>2019-03-31 11:04:40 -0700
commit5f2ed9d55000ba208f8a9069e47186895c39fbc3 (patch)
tree9b53c1ca59767d4f6592e98e394e73118b6a3cda
parent080a64aca06aebed794e6e3ce9b4e6688bf82d6d (diff)
downloadoss-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/Dockerfile5
-rw-r--r--projects/kimageformats/build.sh22
-rw-r--r--projects/kimageformats/kimgio_fuzzer.cc4
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(),