diff --git a/src/journal/fuzz-journald-stream.c b/src/journal/fuzz-journald-stream.c index 3ad9e20222..f9c6bfba10 100644 --- a/src/journal/fuzz-journald-stream.c +++ b/src/journal/fuzz-journald-stream.c @@ -32,7 +32,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { sd_event_run(s->event, UINT64_MAX); if (s->n_stdout_streams > 0) - stdout_stream_destroy(stream); + stdout_stream_terminate(stream); return 0; } diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c index 6144ff0de0..a33c4b2824 100644 --- a/src/journal/journald-server.c +++ b/src/journal/journald-server.c @@ -2270,7 +2270,8 @@ int server_start_or_stop_idle_timer(Server *s) { assert(s); - if (!server_is_idle(s)) { + if (sd_event_get_state(s->event) == SD_EVENT_FINISHED || + !server_is_idle(s)) { s->idle_event_source = sd_event_source_disable_unref(s->idle_event_source); return 0; } diff --git a/src/journal/journald-stream.c b/src/journal/journald-stream.c index 2ada374b73..e45765df0c 100644 --- a/src/journal/journald-stream.c +++ b/src/journal/journald-stream.c @@ -137,7 +137,7 @@ StdoutStream* stdout_stream_free(StdoutStream *s) { DEFINE_TRIVIAL_CLEANUP_FUNC(StdoutStream*, stdout_stream_free); -void stdout_stream_destroy(StdoutStream *s) { +void stdout_stream_terminate(StdoutStream *s) { if (!s) return; @@ -649,7 +649,7 @@ static int stdout_stream_process(sd_event_source *es, int fd, uint32_t revents, return 1; terminate: - stdout_stream_destroy(s); + stdout_stream_terminate(s); return 0; } diff --git a/src/journal/journald-stream.h b/src/journal/journald-stream.h index 7b756c05ec..71d3394ed9 100644 --- a/src/journal/journald-stream.h +++ b/src/journal/journald-stream.h @@ -11,5 +11,5 @@ int server_restore_streams(Server *s, FDSet *fds); StdoutStream* stdout_stream_free(StdoutStream *s); int stdout_stream_install(Server *s, int fd, StdoutStream **ret); -void stdout_stream_destroy(StdoutStream *s); +void stdout_stream_terminate(StdoutStream *s); void stdout_stream_send_notify(StdoutStream *s);