diff options
author | Lennart Poettering <lennart@poettering.net> | 2012-08-17 01:19:32 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2012-08-17 01:19:32 +0200 |
commit | e627440b41bb0284e4892f7aa9d84c77972487e2 (patch) | |
tree | a87f15688752981b7c35338370fdc8ca5a3cb8e3 | |
parent | 31094aae09dd5a773e1634334bcd12fc8834a030 (diff) |
journal: don't write tag objects if nothing has been written since the last time
-rw-r--r-- | src/journal/journal-authenticate.c | 10 | ||||
-rw-r--r-- | src/journal/journal-verify.c | 3 |
2 files changed, 6 insertions, 7 deletions
diff --git a/src/journal/journal-authenticate.c b/src/journal/journal-authenticate.c index ae64d3c8e0..9853edb58c 100644 --- a/src/journal/journal-authenticate.c +++ b/src/journal/journal-authenticate.c @@ -51,8 +51,6 @@ int journal_file_append_tag(JournalFile *f) { if (!f->hmac_running) return 0; - log_debug("Writing tag for epoch %llu\n", (unsigned long long) FSPRG_GetEpoch(f->fsprg_state)); - assert(f->hmac); r = journal_file_append_object(f, OBJECT_TAG, sizeof(struct TagObject), &o, &p); @@ -62,6 +60,10 @@ int journal_file_append_tag(JournalFile *f) { o->tag.seqnum = htole64(journal_file_tag_seqnum(f)); o->tag.epoch = htole64(FSPRG_GetEpoch(f->fsprg_state)); + log_debug("Writing tag %llu for epoch %llu\n", + (unsigned long long) le64toh(o->tag.seqnum), + (unsigned long long) FSPRG_GetEpoch(f->fsprg_state)); + /* Add the tag object itself, so that we can protect its * header. This will exclude the actual hash value in it */ r = journal_file_hmac_put_object(f, OBJECT_TAG, p); @@ -221,10 +223,6 @@ int journal_file_maybe_append_tag(JournalFile *f, uint64_t realtime) { if (r < 0) return r; - r = journal_file_hmac_start(f); - if (r < 0) - return r; - return 0; } diff --git a/src/journal/journal-verify.c b/src/journal/journal-verify.c index 8eefb841b2..9907c5fe26 100644 --- a/src/journal/journal-verify.c +++ b/src/journal/journal-verify.c @@ -35,7 +35,6 @@ /* FIXME: * - * - write tag only if non-tag objects have been written * - write bit mucking test * - tag timestamps should be between entry timestamps * - output validated time ranges @@ -857,6 +856,8 @@ int journal_file_verify(JournalFile *f, const char *key) { goto fail; } + log_debug("Checking tag %llu..", (unsigned long long) le64toh(o->tag.seqnum)); + if (le64toh(o->tag.seqnum) != n_tags + 1) { log_error("Tag sequence number out of synchronization at %llu", (unsigned long long) p); r = -EBADMSG; |