]>
Commit | Line | Data |
---|---|---|
db9ecf05 | 1 | /* SPDX-License-Identifier: LGPL-2.1-or-later */ |
231dca55 EV |
2 | |
3 | #include "alloc-util.h" | |
4 | #include "fuzz-journald.h" | |
5 | #include "journald-server.h" | |
6 | #include "sd-event.h" | |
7 | ||
ed62712d EV |
8 | void dummy_server_init(Server *s, const uint8_t *buffer, size_t size) { |
9 | *s = (Server) { | |
254d1313 ZJS |
10 | .syslog_fd = -EBADF, |
11 | .native_fd = -EBADF, | |
12 | .stdout_fd = -EBADF, | |
13 | .dev_kmsg_fd = -EBADF, | |
14 | .audit_fd = -EBADF, | |
15 | .hostname_fd = -EBADF, | |
16 | .notify_fd = -EBADF, | |
ed62712d | 17 | .storage = STORAGE_NONE, |
9541f5ff | 18 | .line_max = 64, |
ed62712d EV |
19 | }; |
20 | assert_se(sd_event_default(&s->event) >= 0); | |
9541f5ff EV |
21 | |
22 | if (buffer) { | |
23 | s->buffer = memdup_suffix0(buffer, size); | |
24 | assert_se(s->buffer); | |
9541f5ff | 25 | } |
ed62712d EV |
26 | } |
27 | ||
231dca55 EV |
28 | void fuzz_journald_processing_function( |
29 | const uint8_t *data, | |
30 | size_t size, | |
31 | void (*f)(Server *s, const char *buf, size_t raw_len, const struct ucred *ucred, const struct timeval *tv, const char *label, size_t label_len) | |
32 | ) { | |
ed62712d | 33 | Server s; |
231dca55 EV |
34 | char *label = NULL; |
35 | size_t label_len = 0; | |
36 | struct ucred *ucred = NULL; | |
37 | struct timeval *tv = NULL; | |
38 | ||
39 | if (size == 0) | |
40 | return; | |
41 | ||
ed62712d | 42 | dummy_server_init(&s, data, size); |
231dca55 EV |
43 | (*f)(&s, s.buffer, size, ucred, tv, label, label_len); |
44 | server_done(&s); | |
45 | } |