]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-journal: fix memzero size in data hash table setup
authordongshengyuan <545258830@qq.com>
Thu, 25 Jun 2026 08:01:42 +0000 (16:01 +0800)
committerdongshengyuan <dongshengyuan@uniontech.com>
Thu, 25 Jun 2026 08:04:54 +0000 (16:04 +0800)
journal_file_setup_data_hash_table() allocates s * sizeof(HashItem)
bytes for the hash table but then only zeroes s bytes, leaving 15/16 of
the entries uninitialized. This corrupts the hash chain in any newly
created journal file.

The adjacent journal_file_setup_field_hash_table() already uses the
correct size.

Signed-off-by: dongshengyuan <dongshengyuan@uniontech.com>
src/libsystemd/sd-journal/journal-file.c

index bd8a4348bda9092ae5cf4e5385ad3a8e42c3a042..2207b47abfedb17cf91465730535047c9d9afafa 100644 (file)
@@ -1301,7 +1301,7 @@ static int journal_file_setup_data_hash_table(JournalFile *f) {
         if (r < 0)
                 return r;
 
-        memzero(o->hash_table.items, s);
+        memzero(o->hash_table.items, s * sizeof(HashItem));
 
         f->header->data_hash_table_offset = htole64(p + offsetof(Object, hash_table.items));
         f->header->data_hash_table_size = htole64(s * sizeof(HashItem));