summaryrefslogtreecommitdiff
path: root/src/libsystemd
diff options
context:
space:
mode:
authorDaan De Meyer <daan.j.demeyer@gmail.com>2023-01-10 14:30:53 +0100
committerGitHub <noreply@github.com>2023-01-10 14:30:53 +0100
commit68634c26659f78284e1d47fc02ea416db7fabf71 (patch)
tree482dc710470b2e7717cee3be7a6f968328a0ac46 /src/libsystemd
parent5fe34dbfeb3aca9240e94b03ddb5109743498610 (diff)
parente18722375b712f1277d1b44860f184752b586312 (diff)
downloadsystemd-68634c26659f78284e1d47fc02ea416db7fabf71.tar.gz
Merge pull request #24939 from msizanoen1/journal-realtime-enforce-consistency
journal: enforce strict consistency for realtime timestamps on write
Diffstat (limited to 'src/libsystemd')
-rw-r--r--src/libsystemd/sd-journal/journal-file.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/libsystemd/sd-journal/journal-file.c b/src/libsystemd/sd-journal/journal-file.c
index ab518fea80..805773474c 100644
--- a/src/libsystemd/sd-journal/journal-file.c
+++ b/src/libsystemd/sd-journal/journal-file.c
@@ -2092,6 +2092,12 @@ static int journal_file_append_entry_internal(
assert(ts);
assert(items || n_items == 0);
+ if (ts->realtime < le64toh(f->header->tail_entry_realtime))
+ return log_debug_errno(SYNTHETIC_ERRNO(EREMCHG),
+ "Realtime timestamp %" PRIu64 " smaller than previous realtime "
+ "timestamp %" PRIu64 ", refusing entry.",
+ ts->realtime, le64toh(f->header->tail_entry_realtime));
+
osize = offsetof(Object, entry.items) + (n_items * journal_file_entry_item_size(f));
r = journal_file_append_object(f, OBJECT_ENTRY, osize, &o, &np);