If journal_file_open() failed, due to (e.g.) -ENOSPC on open() new_file might still be NULL.
On error, leave pointer to the old JournalFile (now closed), and require caller to check for error approiately. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=43020 Reported-by: Sjoerd Simons <sjo...@luon.net> --- src/journal/journal-file.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c index 5dd6e57..9f5f26e 100644 --- a/src/journal/journal-file.c +++ b/src/journal/journal-file.c @@ -1871,9 +1871,16 @@ int journal_file_rotate(JournalFile **f) { old_file->header->state = STATE_ARCHIVED; r = journal_file_open(old_file->path, old_file->flags, old_file->mode, old_file, &new_file); - journal_file_close(old_file); + + if (r < 0) { + r = -errno; + goto finish; + } *f = new_file; + +finish: + journal_file_close(old_file); return r; } -- 1.7.9.5 _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel