]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
If oaep_md is not initialized, correctly initialize it
authorDmitry Belyavskiy <beldmit@gmail.com>
Thu, 18 May 2023 13:38:56 +0000 (15:38 +0200)
committerTomas Mraz <tomas@openssl.org>
Tue, 23 May 2023 13:10:09 +0000 (15:10 +0200)
Fixes #20993

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/20994)

providers/implementations/asymciphers/rsa_enc.c

index 884c032d211a2845c0473878a46e4d35201dd723..be7952510074eaac2cc8e648736be03805d4ed4e 100644 (file)
@@ -162,10 +162,12 @@ static int rsa_encrypt(void *vprsactx, unsigned char *out, size_t *outlen,
         if ((tbuf = OPENSSL_malloc(rsasize)) == NULL)
             return 0;
         if (prsactx->oaep_md == NULL) {
-            OPENSSL_free(tbuf);
             prsactx->oaep_md = EVP_MD_fetch(prsactx->libctx, "SHA-1", NULL);
-            ERR_raise(ERR_LIB_PROV, ERR_R_INTERNAL_ERROR);
-            return 0;
+            if (prsactx->oaep_md == NULL) {
+                OPENSSL_free(tbuf);
+                ERR_raise(ERR_LIB_PROV, ERR_R_INTERNAL_ERROR);
+                return 0;
+            }
         }
         ret =
             ossl_rsa_padding_add_PKCS1_OAEP_mgf1_ex(prsactx->libctx, tbuf,