diff --git a/src/journal/fuzz-journald-stream.c b/src/journal/fuzz-journald-stream.c index eb1feda662..51c79ece64 100644 --- a/src/journal/fuzz-journald-stream.c +++ b/src/journal/fuzz-journald-stream.c @@ -10,27 +10,27 @@ #include "fuzz.h" #include "fuzz-journald-util.h" #include "journald-stream.h" +#include "tests.h" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { - _cleanup_close_pair_ int stream_fds[2] = EBADF_PAIR; - _cleanup_(manager_freep) Manager *m = NULL; - StdoutStream *stream; - int v, fd0; - if (outside_size_range(size, 1, 65536)) return 0; fuzz_setup_logging(); - assert_se(socketpair(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0, stream_fds) >= 0); - dummy_manager_new(&m, NULL, 0); + _cleanup_close_pair_ int stream_fds[2] = EBADF_PAIR; + ASSERT_OK_ERRNO(socketpair(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0, stream_fds)); - assert_se(stdout_stream_install(m, stream_fds[0], &stream) >= 0); - fd0 = TAKE_FD(stream_fds[0]); /* avoid double close */ + _cleanup_(manager_freep) Manager *m = NULL; + dummy_manager_new(&m, /* buffer= */ NULL, /* size= */ 0); - assert_se(write(stream_fds[1], data, size) == (ssize_t) size); - while (ioctl(fd0, SIOCINQ, &v) == 0 && v) - sd_event_run(m->event, UINT64_MAX); + StdoutStream *stream; + ASSERT_OK(stdout_stream_install(m, stream_fds[0], &stream)); + int fd0 = TAKE_FD(stream_fds[0]); /* avoid double close */ + + ASSERT_OK_EQ_ERRNO(write(stream_fds[1], data, size), (ssize_t) size); + for (int v; ioctl(fd0, SIOCINQ, &v) == 0 && v > 0;) + ASSERT_OK(sd_event_run(m->event, UINT64_MAX)); if (m->n_stdout_streams > 0) stdout_stream_terminate(stream);