evp: fix coverity 1474469: negative return
authorPauli <pauli@openssl.org>
Mon, 29 Mar 2021 02:30:40 +0000 (12:30 +1000)
committerTomas Mraz <tomas@openssl.org>
Tue, 30 Mar 2021 16:57:29 +0000 (18:57 +0200)
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/14716)

crypto/evp/evp_pkey.c

index 7aafd7682238a421d5dccd6d75f665a9aa7d97de..35de85cffd7561596d9ba0d70da3f2045f57d0fb 100644 (file)
@@ -73,8 +73,9 @@ EVP_PKEY *EVP_PKCS82PKEY_ex(const PKCS8_PRIV_KEY_INFO *p8, OSSL_LIB_CTX *libctx,
     size_t len;
     OSSL_DECODER_CTX *dctx = NULL;
 
-    if ((encoded_len = i2d_PKCS8_PRIV_KEY_INFO(p8, &encoded_data)) <= 0)
-        goto end;
+    if ((encoded_len = i2d_PKCS8_PRIV_KEY_INFO(p8, &encoded_data)) <= 0
+            || encoded_data == NULL)
+        return NULL;
 
     p8_data = encoded_data;
     len = encoded_len;
@@ -85,7 +86,6 @@ EVP_PKEY *EVP_PKCS82PKEY_ex(const PKCS8_PRIV_KEY_INFO *p8, OSSL_LIB_CTX *libctx,
         /* try legacy */
         pkey = evp_pkcs82pkey_legacy(p8, libctx, propq);
 
- end:
     OPENSSL_clear_free(encoded_data, encoded_len);
     OSSL_DECODER_CTX_free(dctx);
     return pkey;