diff options
author | Lennart Poettering <lennart@poettering.net> | 2023-01-25 18:48:31 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2023-01-25 18:48:31 +0100 |
commit | c3dd0dcb888fd8da7ce4e5299caf45e90ddcd41b (patch) | |
tree | cf887b56bb5a31f4b78f10f85d261bea62d57a2b /src/libsystemd/sd-journal | |
parent | 6fe167d0a77f72086b457125fad6931ca02a4baf (diff) | |
download | systemd-c3dd0dcb888fd8da7ce4e5299caf45e90ddcd41b.tar.gz |
journal: use compound initialization for journal file Header structure
Diffstat (limited to 'src/libsystemd/sd-journal')
-rw-r--r-- | src/libsystemd/sd-journal/journal-file.c | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/src/libsystemd/sd-journal/journal-file.c b/src/libsystemd/sd-journal/journal-file.c index 32dd4cfeb8..f4e11b4379 100644 --- a/src/libsystemd/sd-journal/journal-file.c +++ b/src/libsystemd/sd-journal/journal-file.c @@ -335,9 +335,8 @@ static bool compact_mode_requested(void) { } static int journal_file_init_header(JournalFile *f, JournalFileFlags file_flags, JournalFile *template) { - Header h = {}; - ssize_t k; bool seal = false; + ssize_t k; int r; assert(f); @@ -347,16 +346,17 @@ static int journal_file_init_header(JournalFile *f, JournalFileFlags file_flags, seal = FLAGS_SET(file_flags, JOURNAL_SEAL) && journal_file_fss_load(f) >= 0; #endif - memcpy(h.signature, HEADER_SIGNATURE, 8); - h.header_size = htole64(ALIGN64(sizeof(h))); - - h.incompatible_flags |= htole32( - FLAGS_SET(file_flags, JOURNAL_COMPRESS) * - COMPRESSION_TO_HEADER_INCOMPATIBLE_FLAG(DEFAULT_COMPRESSION) | - keyed_hash_requested() * HEADER_INCOMPATIBLE_KEYED_HASH | - compact_mode_requested() * HEADER_INCOMPATIBLE_COMPACT); + Header h = { + .header_size = htole64(ALIGN64(sizeof(h))), + .incompatible_flags = htole32( + FLAGS_SET(file_flags, JOURNAL_COMPRESS) * COMPRESSION_TO_HEADER_INCOMPATIBLE_FLAG(DEFAULT_COMPRESSION) | + keyed_hash_requested() * HEADER_INCOMPATIBLE_KEYED_HASH | + compact_mode_requested() * HEADER_INCOMPATIBLE_COMPACT), + .compatible_flags = htole32(seal * HEADER_COMPATIBLE_SEALED), + }; - h.compatible_flags = htole32(seal * HEADER_COMPATIBLE_SEALED); + assert_cc(sizeof(h.signature) == sizeof(HEADER_SIGNATURE)); + memcpy(h.signature, HEADER_SIGNATURE, sizeof(HEADER_SIGNATURE)); r = sd_id128_randomize(&h.file_id); if (r < 0) @@ -371,7 +371,6 @@ static int journal_file_init_header(JournalFile *f, JournalFileFlags file_flags, k = pwrite(f->fd, &h, sizeof(h), 0); if (k < 0) return -errno; - if (k != sizeof(h)) return -EIO; |