aboutsummaryrefslogtreecommitdiff
path: root/projects/kimageformats/kimgio_fuzzer.cc
diff options
context:
space:
mode:
authortsdgeos <aacid@kde.org>2019-04-17 00:40:48 +0200
committerMax Moroz <dor3s1@gmail.com>2019-04-16 15:40:48 -0700
commit0221e8b0307c3f069e248082ef99ae2d6fa5a7cb (patch)
treef159857fee704ee30ccb81aacaaefe0108122649 /projects/kimageformats/kimgio_fuzzer.cc
parent53c09d30f60f4b65eaab9d622f3f47938aa7bd4a (diff)
downloadoss-fuzz-0221e8b0307c3f069e248082ef99ae2d6fa5a7cb.tar.gz
[kimageformats] Split fuzzer into 9 fuzzers (#2327)
oss-fuzz devels say this is optimal
Diffstat (limited to 'projects/kimageformats/kimgio_fuzzer.cc')
-rw-r--r--projects/kimageformats/kimgio_fuzzer.cc33
1 files changed, 11 insertions, 22 deletions
diff --git a/projects/kimageformats/kimgio_fuzzer.cc b/projects/kimageformats/kimgio_fuzzer.cc
index ca74dc1a3..7a17076c8 100644
--- a/projects/kimageformats/kimgio_fuzzer.cc
+++ b/projects/kimageformats/kimgio_fuzzer.cc
@@ -20,7 +20,7 @@
Usage:
python infra/helper.py build_image kimageformats
python infra/helper.py build_fuzzers --sanitizer undefined|address|memory kimageformats
- python infra/helper.py run_fuzzer kimageformats kimgio_fuzzer
+ python infra/helper.py run_fuzzer kimageformats kimgio_[kra|ora|pcx|pic|psd|ras|rgb|tga|xcf]_fuzzer
*/
@@ -43,28 +43,17 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
int argc = 0;
QCoreApplication a(argc, nullptr);
- const QVector<QImageIOHandler*> handlers = {
- new KraHandler(),
- new OraHandler(),
- new PCXHandler(),
- new SoftimagePICHandler(),
- new PSDHandler(),
- new RASHandler(),
- new RGBHandler(),
- new TGAHandler(),
- new XCFHandler()
- };
+ QImageIOHandler* handler = new HANDLER();
- for (QImageIOHandler *h : handlers) {
- QImage i;
- QBuffer b;
- b.setData((const char *)data, size);
- b.open(QIODevice::ReadOnly);
- h->setDevice(&b);
- h->canRead();
- h->read(&i);
- }
- qDeleteAll(handlers);
+ QImage i;
+ QBuffer b;
+ b.setData((const char *)data, size);
+ b.open(QIODevice::ReadOnly);
+ handler->setDevice(&b);
+ handler->canRead();
+ handler->read(&i);
+
+ delete handler;
return 0;
}