From a678f3df9d644ca054aea33e8b3e7e40ce300558 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20L=C3=B6hning?= Date: Fri, 13 May 2022 22:15:42 +0200 Subject: 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 --- tests/auto/icns/tst_qicns.cpp | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'tests') 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("data"); + QTest::addColumn("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" -- cgit v1.2.1