/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 | } |