fuzz-journald-stream: modernize code
- use ASSERT_OK() and friends, - move variable declarations, - add missing assertion for sd_event_run(). Fixes CID#1687042. (cherry picked from commit fc8f6197a9b801e7b670e730a58490ef37075f0b)
This commit is contained in:
committed by
Luca Boccassi
parent
d471026d72
commit
5176a93218
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user