]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
e_loader_attic.c: Improve result handling of file_load_try_decode()
authorDr. David von Oheimb <David.von.Oheimb@siemens.com>
Sat, 6 Jun 2020 11:59:25 +0000 (13:59 +0200)
committerDr. David von Oheimb <David.von.Oheimb@siemens.com>
Thu, 19 Nov 2020 10:36:02 +0000 (11:36 +0100)
Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/4930)

engines/e_loader_attic.c

index 8a9b86483f4ca6ab1ea4eecb8c1ff2a87c46e7f7..936faa98b350bd2aa05a7a7ef658c52a73c64327 100644 (file)
@@ -1233,10 +1233,13 @@ static OSSL_STORE_INFO *file_load_try_decode(OSSL_STORE_LOADER_CTX *ctx,
                 }
                 if (result == NULL)
                     result = tmp_result;
+                if (result == NULL) /* e.g., PKCS#12 file decryption error */
+                    break;
             }
         }
 
-        if (*matchcount == 1 && matching_handlers[0]->repeatable) {
+        if (result != NULL
+                && *matchcount == 1 && matching_handlers[0]->repeatable) {
             ctx->_.file.last_handler = matching_handlers[0];
             ctx->_.file.last_handler_ctx = handler_ctx;
         }