/src/poppler/qt6/tests/fuzzing/qt_label_fuzzer.cc
Line | Count | Source |
1 | | #include <cstdint> |
2 | | #include <poppler-qt6.h> |
3 | | #include <QtGui/QImage> |
4 | | #include <GlobalParams.h> |
5 | | |
6 | | extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) |
7 | 49.7k | { |
8 | 49.7k | GlobalParamsIniter globalParamsIniter(nullptr); |
9 | 49.7k | globalParams->setErrQuiet(true); |
10 | | |
11 | 49.7k | QByteArray in_data = QByteArray::fromRawData((const char *)data, size); |
12 | 49.7k | std::unique_ptr<Poppler::Document> doc = Poppler::Document::loadFromData(in_data); |
13 | 49.7k | if (!doc || doc->isLocked()) { |
14 | 9.50k | return 0; |
15 | 9.50k | } |
16 | | |
17 | 380k | for (int i = 0; i < doc->numPages(); i++) { |
18 | 339k | QString label = QString::fromUtf8(in_data); |
19 | 339k | std::unique_ptr<Poppler::Page> p = doc->page(label); |
20 | 339k | if (!p) { |
21 | 236k | continue; |
22 | 236k | } |
23 | 103k | QImage image = p->renderToImage(72.0, 72.0, -1, -1, -1, -1, Poppler::Page::Rotate0); |
24 | 103k | } |
25 | | |
26 | 40.2k | return 0; |
27 | 49.7k | } |