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>
This commit is contained in:
Robert Löhning 2022-05-13 22:15:42 +02:00
parent ac07c65ff5
commit a678f3df9d
1 changed files with 23 additions and 1 deletions

View File

@ -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"