summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorRobert Löhning <robert.loehning@qt.io>2022-05-13 22:15:42 +0200
committerRobert Löhning <robert.loehning@qt.io>2022-05-25 08:10:01 +0000
commita678f3df9d644ca054aea33e8b3e7e40ce300558 (patch)
tree1116ca2d8582af7c397bcabc5fd1557538bc027a /tests
parentac07c65ff5479a4edd558c4e7308eba872355e24 (diff)
Add finding from oss-fuzz to tst_qicns
Pick-to: 6.3 6.2 5.15 Task-number: QTBUG-103454 Change-Id: I86bf891e67bcd483ed0b551190244b94677d1751 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/icns/tst_qicns.cpp24
1 files changed, 23 insertions, 1 deletions
diff --git a/tests/auto/icns/tst_qicns.cpp b/tests/auto/icns/tst_qicns.cpp
index 95e5784..8734c1a 100644
--- a/tests/auto/icns/tst_qicns.cpp
+++ b/tests/auto/icns/tst_qicns.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2022 The Qt Company Ltd.
** Copyright (C) 2016 Alex Char.
** Contact: https://www.qt.io/licensing/
**
@@ -40,6 +40,8 @@ private slots:
void readIcons();
void writeIcons_data();
void writeIcons();
+ void ossFuzz_data();
+ void ossFuzz();
};
void tst_qicns::initTestCase()
@@ -123,5 +125,25 @@ void tst_qicns::writeIcons()
QVERIFY(image == QImage(distPath));
}
+void tst_qicns::ossFuzz_data()
+{
+ QTest::addColumn<QByteArray>("data");
+ QTest::addColumn<QByteArrayList>("ignoredMessages");
+ QTest::newRow("47415") << QByteArray::fromRawData("icns\0\0\0\0", 8)
+ << QByteArrayList({"QICNSHandler::scanDevice(): Failed, bad header at "
+ "pos 8. OSType \"icns\", length 0",
+ "QICNSHandler::read(): The device wasn't parsed "
+ "properly!"});
+}
+
+void tst_qicns::ossFuzz()
+{
+ QFETCH(QByteArray, data);
+ QFETCH(QByteArrayList, ignoredMessages);
+ for (auto msg: ignoredMessages)
+ QTest::ignoreMessage(QtWarningMsg, msg.data());
+ QImage().loadFromData(data);
+}
+
QTEST_MAIN(tst_qicns)
#include "tst_qicns.moc"