chiark / gitweb /
journalctl: immeidately terminate on invalid seed
authorLennart Poettering <lennart@poettering.net>
Thu, 16 Aug 2012 19:00:34 +0000 (21:00 +0200)
committerLennart Poettering <lennart@poettering.net>
Thu, 16 Aug 2012 19:00:47 +0000 (21:00 +0200)
src/journal/journal-verify.c
src/journal/journalctl.c

index f6cec1eb52a5d8ec64b9156a83acfed1b6a1a3b5..6871433402e394fb3998f250d9014fe8def2a147 100644 (file)
@@ -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;
                 }
         }
 
index 3d274c8eb5e64a172ff9c41f1f7b7e9e24f2ab20..25e441b0222075b327d06a12505079252ec072a2 100644 (file)
@@ -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);
         }