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