Use X509_REQ_get0_pubkey
[openssl.git] / crypto / x509 / x509_r2x.c
index dc7e41265ccb09b46dbc35b95901259cd1b37c9e..d082636de411a504ae347952ad50dc9b3b88b7dd 100644 (file)
@@ -101,21 +101,14 @@ X509 *X509_REQ_to_X509(X509_REQ *r, int days, EVP_PKEY *pkey)
         NULL)
         goto err;
 
-    pubkey = X509_REQ_get_pubkey(r);
-    if (pubkey == NULL)
+    pubkey = X509_REQ_get0_pubkey(r);
+    if (pubkey == NULL || !X509_set_pubkey(ret, pubkey))
         goto err;
 
-    if (!X509_set_pubkey(ret, pubkey))
-        goto err_pkey;
-
-    EVP_PKEY_free(pubkey);
-
     if (!X509_sign(ret, pkey, EVP_md5()))
         goto err;
     return ret;
 
- err_pkey:
-    EVP_PKEY_free(pubkey);
  err:
     X509_free(ret);
     return NULL;