Coverage Report

Created: 2025-09-13 06:44

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/kmime/autotests/ossfuzz/kmime_fuzzer.cc
Line
Count
Source
1
/*
2
 * SPDX-FileCopyrightText: 2025 Azhar Momin <azhar.momin@kdemail.net>
3
 * SPDX-License-Identifier: LGPL-2.0-or-later
4
 */
5
6
#include "message.h"
7
8
#include <QCoreApplication>
9
#include <QtEnvironmentVariables>
10
11
48
void traverseContent(KMime::Content *content) {
12
48
  for (KMime::Content *c : content->contents()) {
13
28
    auto decodedBody = c->decodedContent();
14
28
    auto decodedText = c->decodedText();
15
16
371
    for (const auto &header : c->headers()) {
17
371
      auto headerAs7BitString = header->as7BitString();
18
371
      auto headerAsUnicodeString = header->asUnicodeString();
19
371
    }
20
21
28
    traverseContent(c);
22
28
  }
23
48
}
24
25
20
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
26
20
  qputenv("QT_ENABLE_REGEXP_JIT", "1");
27
28
20
  int argc = 0;
29
20
  QCoreApplication a(argc, nullptr);
30
31
20
  QByteArray input((const char *)data, size);
32
33
20
  KMime::Message message;
34
20
  message.setContent(input);
35
20
  message.parse();
36
37
20
  traverseContent(&message);
38
39
20
  return 0;
40
20
}