]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-journal: copy boot ID
authorYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 26 Apr 2023 11:37:00 +0000 (20:37 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 26 Apr 2023 11:51:12 +0000 (20:51 +0900)
The pointer to boot ID may be invalidate by journal_file_move_to_object()
calls in the later loop.

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

index f14e7aa23d2d9edd2132894ba7c46779dd38c137..e9bb893ca824fb8a62adaee57048764a0dfafe12 100644 (file)
@@ -4169,7 +4169,7 @@ int journal_file_copy_entry(
         _cleanup_free_ EntryItem *items_alloc = NULL;
         EntryItem *items;
         uint64_t n, m = 0, xor_hash = 0;
-        const sd_id128_t *boot_id;
+        sd_id128_t boot_id;
         dual_timestamp ts;
         int r;
 
@@ -4185,7 +4185,7 @@ int journal_file_copy_entry(
                 .monotonic = le64toh(o->entry.monotonic),
                 .realtime = le64toh(o->entry.realtime),
         };
-        boot_id = &o->entry.boot_id;
+        boot_id = o->entry.boot_id;
 
         n = journal_file_entry_n_items(from, o);
 
@@ -4246,7 +4246,7 @@ int journal_file_copy_entry(
         r = journal_file_append_entry_internal(
                         to,
                         &ts,
-                        boot_id,
+                        &boot_id,
                         &from->header->machine_id,
                         xor_hash,
                         items,