openssl ca: make index.txt parsing error more verbose
authorFlorian Mickler <florian@mickler.org>
Mon, 13 Jan 2020 00:44:24 +0000 (01:44 +0100)
committerTomas Mraz <tomas@openssl.org>
Mon, 24 May 2021 12:36:59 +0000 (14:36 +0200)
If index.txt exists but has some problems (like for example a single \n character in it) openssl will just exit without any error message.

Bug at least expirienced twice: https://superuser.com/questions/1327848/openssl-ca-fails-after-password-without-error-message

Reviewed-by: Paul Dale <pauli@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/15360)

apps/ca.c

index 923ede4cde0ea16b6074826917bccbcf9bd09c8c..32abc021a6ba4f4d7341d23ffaf5d5870690d49c 100755 (executable)
--- a/apps/ca.c
+++ b/apps/ca.c
@@ -556,8 +556,10 @@ end_of_options:
             goto end;
 
         db = load_index(dbfile, &db_attr);
-        if (db == NULL)
+        if (db == NULL) {
+            BIO_printf(bio_err, "Problem with index file: %s (could not load/parse file)\n", dbfile);
             goto end;
+        }
 
         if (index_index(db) <= 0)
             goto end;
@@ -684,8 +686,10 @@ end_of_options:
         goto end;
 
     db = load_index(dbfile, &db_attr);
-    if (db == NULL)
+    if (db == NULL) {
+        BIO_printf(bio_err, "Problem with index file: %s (could not load/parse file)\n", dbfile);
         goto end;
+    }
 
     /* Lets check some fields */
     for (i = 0; i < sk_OPENSSL_PSTRING_num(db->db->data); i++) {