summaryrefslogtreecommitdiff
path: root/src/journal/journal-file.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2016-04-25 21:42:15 +0200
committerLennart Poettering <lennart@poettering.net>2016-04-26 12:00:02 +0200
commit50809d7a9c986f78d8b8872098e4880aa8ff2076 (patch)
treef53834a8dcd61e12048387b07afd67c3348bbb59 /src/journal/journal-file.c
parent1000522a60ceade446773c67031b47a566d4a70d (diff)
sd-journal: detect earlier if we try to read an object from an invalid offset
Specifically, detect early if we try to read from offset 0, i.e. are using uninitialized offset data.
Diffstat (limited to 'src/journal/journal-file.c')
-rw-r--r--src/journal/journal-file.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c
index ac6c30f9f2..c4318636f7 100644
--- a/src/journal/journal-file.c
+++ b/src/journal/journal-file.c
@@ -709,6 +709,10 @@ int journal_file_move_to_object(JournalFile *f, ObjectType type, uint64_t offset
if (!VALID64(offset))
return -EFAULT;
+ /* Object may not be located in the file header */
+ if (offset < le64toh(f->header->header_size))
+ return -EBADMSG;
+
r = journal_file_move_to(f, type, false, offset, sizeof(ObjectHeader), &t);
if (r < 0)
return r;