summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2023-01-25 18:48:31 +0100
committerLennart Poettering <lennart@poettering.net>2023-01-25 18:48:31 +0100
commitc3dd0dcb888fd8da7ce4e5299caf45e90ddcd41b (patch)
treecf887b56bb5a31f4b78f10f85d261bea62d57a2b /src
parent6fe167d0a77f72086b457125fad6931ca02a4baf (diff)
downloadsystemd-c3dd0dcb888fd8da7ce4e5299caf45e90ddcd41b.tar.gz
journal: use compound initialization for journal file Header structure
Diffstat (limited to 'src')
-rw-r--r--src/libsystemd/sd-journal/journal-file.c23
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;