sd-journal: fix segfault

Unfortunately, journal_file_next_entry() returns 0 when the next entry
not found. The commit cc938e4a0a adds
FIXME comment about that. We should really fix that, but the function and
its return value are used in many place, hence checking all usecases is not
easy. So, let's workaround that here, and handle the 0 return value by
the caller.

Follow-up for 34af74946e.

Fixes #26822.
This commit is contained in:
Yu Watanabe
2023-03-15 15:12:41 +09:00
committed by Luca Boccassi
parent 77c26cd62a
commit 3b1b0f1aeb

View File

@@ -2436,6 +2436,8 @@ static int journal_file_read_tail_timestamp(sd_journal *j, JournalFile *f) {
r = journal_file_next_entry(f, 0, DIRECTION_UP, &o, NULL);
if (r < 0)
return r;
if (r == 0)
return -ENODATA;
id = o->entry.boot_id;
mo = le64toh(o->entry.monotonic);