summaryrefslogtreecommitdiff
path: root/src/libsystemd/sd-journal
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2023-02-01 12:23:54 +0100
committerLennart Poettering <lennart@poettering.net>2023-02-21 10:47:53 +0100
commit07f1c7aa9db7a98e0ba1eb1b0d42f171925fc5eb (patch)
tree8dba0128a122a47534a905fc6a1004463ebc6ab6 /src/libsystemd/sd-journal
parent51ab0afed48dc55a211fbb610e188221446eb61f (diff)
downloadsystemd-07f1c7aa9db7a98e0ba1eb1b0d42f171925fc5eb.tar.gz
journal-file: allow opening journal files for write when machine ID is not initialized
We allow reading them, and we allow creating them, but we so far did not allow opening existing ones for write – if the machine ID is not initialized. Let's fix that. (This is just to fix an asymmetry. I have no immediate use for this. But test code should in theory be able to use this, if it runs in an incompletely initialized environment.)
Diffstat (limited to 'src/libsystemd/sd-journal')
-rw-r--r--src/libsystemd/sd-journal/journal-file.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/libsystemd/sd-journal/journal-file.c b/src/libsystemd/sd-journal/journal-file.c
index 3e721ef937..05c66815ae 100644
--- a/src/libsystemd/sd-journal/journal-file.c
+++ b/src/libsystemd/sd-journal/journal-file.c
@@ -511,8 +511,12 @@ static int journal_file_verify_header(JournalFile *f) {
int r;
r = sd_id128_get_machine(&machine_id);
- if (r < 0)
- return r;
+ if (r < 0) {
+ if (!ERRNO_IS_MACHINE_ID_UNSET(r)) /* handle graceful if machine ID is not initialized yet */
+ return r;
+
+ machine_id = SD_ID128_NULL;
+ }
if (!sd_id128_equal(machine_id, f->header->machine_id))
return log_debug_errno(SYNTHETIC_ERRNO(EHOSTDOWN),