The branch master has been updated
       via  90ef39f43ad5bf4e85c56a79d0b56fb590b3c7f7 (commit)
      from  a7922e208ddfbdcff44d1b3fa5839f96510d04bd (commit)


- Log -----------------------------------------------------------------
commit 90ef39f43ad5bf4e85c56a79d0b56fb590b3c7f7
Author: Richard Levitte <levi...@openssl.org>
Date:   Wed Aug 5 10:40:01 2020 +0200

    EVP: Fix the returned value for ASN1_PKEY_CTRL_DEFAULT_MD_NID
    
    Trust the returned value from EVP_PKEY_get_default_digest_name()!  It
    mimics exactly the values that EVP_PKEY_get_default_digest_nid() is
    supposed to return, and that value should simply be passed unchanged.
    Callers depend on it.
    
    Reviewed-by: Matt Caswell <m...@openssl.org>
    (Merged from https://github.com/openssl/openssl/pull/12586)

-----------------------------------------------------------------------

Summary of changes:
 crypto/evp/p_lib.c | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/crypto/evp/p_lib.c b/crypto/evp/p_lib.c
index 3e3f2118a2..2563cd97ca 100644
--- a/crypto/evp/p_lib.c
+++ b/crypto/evp/p_lib.c
@@ -1202,19 +1202,18 @@ static int legacy_asn1_ctrl_to_param(EVP_PKEY *pkey, 
int op,
     case ASN1_PKEY_CTRL_DEFAULT_MD_NID:
         {
             char mdname[80] = "";
-            int nid;
             int rv = EVP_PKEY_get_default_digest_name(pkey, mdname,
                                                       sizeof(mdname));
 
-            if (rv <= 0)
-                return rv;
-            nid = OBJ_sn2nid(mdname);
-            if (nid == NID_undef)
-                nid = OBJ_ln2nid(mdname);
-            if (nid == NID_undef)
-                return 0;
-            *(int *)arg2 = nid;
-            return 1;
+            if (rv > 0) {
+                int nid;
+
+                nid = OBJ_sn2nid(mdname);
+                if (nid == NID_undef)
+                    nid = OBJ_ln2nid(mdname);
+                *(int *)arg2 = nid;
+            }
+            return rv;
         }
     default:
         return -2;

Reply via email to