]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
journal-file: allow opening journal files for write when machine ID is not initialized
authorLennart Poettering <lennart@poettering.net>
Wed, 1 Feb 2023 11:23:54 +0000 (12:23 +0100)
committerLennart Poettering <lennart@poettering.net>
Tue, 21 Feb 2023 09:47:53 +0000 (10:47 +0100)
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.)

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

index 3e721ef937dff3487979f15cb41645cd152aad5c..05c66815ae15ee92d1908ec55f37c0878fd94104 100644 (file)
@@ -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),