Coverage Report

Created: 2025-09-27 07:50

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/poppler/qt5/tests/fuzzing/qt_pdf_fuzzer.cc
Line
Count
Source
1
#include <cstdint>
2
#include <poppler-qt5.h>
3
#include <QtCore/QBuffer>
4
#include <QtGui/QImage>
5
6
32.0M
static void dummy_error_function(const QString &, const QVariant &) { }
7
8
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
9
8.25k
{
10
8.25k
    Poppler::setDebugErrorFunction(dummy_error_function, QVariant());
11
8.25k
    QByteArray in_data = QByteArray::fromRawData((const char *)data, size);
12
8.25k
    Poppler::Document *doc = Poppler::Document::loadFromData(in_data);
13
8.25k
    if (!doc || doc->isLocked()) {
14
399
        delete doc;
15
399
        return 0;
16
399
    }
17
18
62.2k
    for (int i = 0; i < doc->numPages(); i++) {
19
54.4k
        Poppler::Page *p = doc->page(i);
20
54.4k
        if (!p) {
21
42.3k
            continue;
22
42.3k
        }
23
12.1k
        QImage image = p->renderToImage(72.0, 72.0, -1, -1, -1, -1, Poppler::Page::Rotate0);
24
12.1k
        delete p;
25
12.1k
    }
26
27
7.85k
    if (doc->numPages() > 0) {
28
7.64k
        QList<int> pageList;
29
62.0k
        for (int i = 0; i < doc->numPages(); i++) {
30
54.4k
            pageList << (i + 1);
31
54.4k
        }
32
33
7.64k
        Poppler::PSConverter *psConverter = doc->psConverter();
34
35
7.64k
        QBuffer buffer;
36
7.64k
        buffer.open(QIODevice::WriteOnly);
37
7.64k
        psConverter->setOutputDevice(&buffer);
38
39
7.64k
        psConverter->setPageList(pageList);
40
7.64k
        psConverter->setPaperWidth(595);
41
7.64k
        psConverter->setPaperHeight(842);
42
7.64k
        psConverter->setTitle(doc->info("Title"));
43
7.64k
        psConverter->convert();
44
7.64k
        delete psConverter;
45
7.64k
    }
46
47
7.85k
    delete doc;
48
7.85k
    return 0;
49
8.25k
}