]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
X509_PUBKEY_set(): Fix error reporting
authorDr. David von Oheimb <David.von.Oheimb@siemens.com>
Mon, 21 Dec 2020 14:52:01 +0000 (15:52 +0100)
committerDr. David von Oheimb <dev@ddvo.net>
Wed, 13 Jan 2021 10:53:15 +0000 (11:53 +0100)
Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/13658)

crypto/x509/x_pubkey.c

index a9beef682bbece75790f05d129be66a4dd63ee71..7423b122d3596761e4e5ee4da096a5d16341f05d 100644 (file)
@@ -99,11 +99,10 @@ int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey)
 {
     X509_PUBKEY *pk = NULL;
 
-    if (x == NULL)
+    if (x == NULL || pkey == NULL) {
+        ERR_raise(ERR_LIB_X509, ERR_R_PASSED_NULL_PARAMETER);
         return 0;
-
-    if (pkey == NULL)
-        goto unsupported;
+    }
 
     if (pkey->ameth != NULL) {
         if ((pk = X509_PUBKEY_new()) == NULL) {
@@ -137,8 +136,10 @@ int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey)
         OPENSSL_free(der);
     }
 
-    if (pk == NULL)
-        goto unsupported;
+    if (pk == NULL) {
+        ERR_raise(ERR_LIB_X509, X509_R_UNSUPPORTED_ALGORITHM);
+        goto error;
+    }
 
     X509_PUBKEY_free(*x);
     if (!EVP_PKEY_up_ref(pkey)) {
@@ -165,9 +166,6 @@ int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey)
     pk->pkey = pkey;
     return 1;
 
- unsupported:
-    ERR_raise(ERR_LIB_X509, X509_R_UNSUPPORTED_ALGORITHM);
-
  error:
     X509_PUBKEY_free(pk);
     return 0;