summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2012-08-16 21:00:34 +0200
committerLennart Poettering <lennart@poettering.net>2012-08-16 21:00:47 +0200
commit56e81f7ca8276e40f8c88c4c30713a5b54009613 (patch)
tree4df64c8d412280533f75d16b61e69794f5c5deb4
parentb7c9ae91d111b3e89d1ffc00e08f9ed97a8ff5db (diff)
journalctl: immeidately terminate on invalid seed
-rw-r--r--src/journal/journal-verify.c2
-rw-r--r--src/journal/journalctl.c9
2 files changed, 8 insertions, 3 deletions
diff --git a/src/journal/journal-verify.c b/src/journal/journal-verify.c
index f6cec1eb52..6871433402 100644
--- a/src/journal/journal-verify.c
+++ b/src/journal/journal-verify.c
@@ -667,7 +667,7 @@ int journal_file_verify(JournalFile *f, const char *seed) {
r = journal_file_parse_seed(f, seed);
if (r < 0) {
log_error("Failed to parse seed.");
- goto fail;
+ return r;
}
}
diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c
index 3d274c8eb5..25e441b022 100644
--- a/src/journal/journalctl.c
+++ b/src/journal/journalctl.c
@@ -601,13 +601,18 @@ static int verify(sd_journal *j) {
HASHMAP_FOREACH(f, j->files, i) {
int k;
+#ifdef HAVE_GCRYPT
if (!arg_verify_seed && journal_file_fsprg_enabled(f))
log_warning("Journal file %s has authentication enabled but verification seed has not been passed using --verify-seed=.", f->path);
+#endif
k = journal_file_verify(f, arg_verify_seed);
- if (k < 0) {
+ if (k == -EINVAL) {
+ /* If the seed was invalid give up right-away. */
+ return k;
+ } else if (k < 0) {
log_warning("FAIL: %s (%s)", f->path, strerror(-k));
- r = -r;
+ r = k;
} else
log_info("PASS: %s", f->path);
}