]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
journal: use EBADMSG for invalid data in file mmap
authorLennart Poettering <lennart@poettering.net>
Thu, 5 Jun 2025 20:21:16 +0000 (22:21 +0200)
committerLennart Poettering <lennart@poettering.net>
Thu, 5 Jun 2025 20:31:21 +0000 (22:31 +0200)
We must assume that any data in the mmap can change anytime because the
file is deallocated or similar. Let's strictly use EBADMSG for reporting
invalid file contents though (as opposed to using EINVAL if our own code
passes a wrong parameter somwhere).

src/libsystemd/sd-journal/journal-file.c

index 229a19d8e7ca0456049c50865354f80bdf06ff4e..786d757e9c08a64448fb6f5c96617ea65bbd27e7 100644 (file)
@@ -1404,7 +1404,7 @@ static int journal_file_link_field(
         assert(offset > 0);
 
         if (o->object.type != OBJECT_FIELD)
-                return -EINVAL;
+                return -EBADMSG;
 
         m = le64toh(READ_NOW(f->header->field_hash_table_size)) / sizeof(HashItem);
         if (m <= 0)
@@ -1449,7 +1449,7 @@ static int journal_file_link_data(
         assert(offset > 0);
 
         if (o->object.type != OBJECT_DATA)
-                return -EINVAL;
+                return -EBADMSG;
 
         m = le64toh(READ_NOW(f->header->data_hash_table_size)) / sizeof(HashItem);
         if (m <= 0)
@@ -2233,7 +2233,7 @@ static int journal_file_link_entry(
         assert(offset > 0);
 
         if (o->object.type != OBJECT_ENTRY)
-                return -EINVAL;
+                return -EBADMSG;
 
         __atomic_thread_fence(__ATOMIC_SEQ_CST);