Coverage Report

Created: 2026-06-30 06:26

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
948k
void traverseContent(KMime::Content *content) {
12
948k
  for (KMime::Content *c : content->contents()) {
13
933k
    auto decodedBody = c->decodedBody();
14
933k
    auto decodedText = c->decodedText();
15
16
1.79M
    for (const auto &header : c->headers()) {
17
1.79M
      auto headerAs7BitString = header->as7BitString();
18
1.79M
      auto headerAsUnicodeString = header->asUnicodeString();
19
1.79M
    }
20
21
933k
    traverseContent(c);
22
933k
  }
23
948k
}
24
25
14.8k
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
26
14.8k
  qputenv("QT_ENABLE_REGEXP_JIT", "1");
27
28
14.8k
  int argc = 0;
29
14.8k
  QCoreApplication a(argc, nullptr);
30
31
14.8k
  QByteArray input((const char *)data, size);
32
33
14.8k
  KMime::Message message;
34
14.8k
  message.setContent(input);
35
14.8k
  message.parse();
36
37
14.8k
  traverseContent(&message);
38
39
14.8k
  return 0;
40
14.8k
}