diff options
Diffstat (limited to 'src/libsystemd')
-rw-r--r-- | src/libsystemd/sd-journal/journal-file.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/libsystemd/sd-journal/journal-file.c b/src/libsystemd/sd-journal/journal-file.c index 3753e29d0d..bafd2bae80 100644 --- a/src/libsystemd/sd-journal/journal-file.c +++ b/src/libsystemd/sd-journal/journal-file.c @@ -4168,7 +4168,7 @@ int journal_file_copy_entry( _cleanup_free_ EntryItem *items_alloc = NULL; EntryItem *items; - uint64_t q, n, xor_hash = 0; + uint64_t q, n, m = 0, xor_hash = 0; const sd_id128_t *boot_id; dual_timestamp ts; int r; @@ -4227,7 +4227,7 @@ int journal_file_copy_entry( else xor_hash ^= le64toh(u->data.hash); - items[i] = (EntryItem) { + items[m++] = (EntryItem) { .object_offset = h, .hash = le64toh(u->data.hash), }; @@ -4240,6 +4240,9 @@ int journal_file_copy_entry( return r; } + if (m == 0) + return 0; + r = journal_file_append_entry_internal( to, &ts, @@ -4247,7 +4250,7 @@ int journal_file_copy_entry( &from->header->machine_id, xor_hash, items, - n, + m, seqnum, seqnum_id, /* ret_object= */ NULL, |