A conversion from X509_REQ_get_pubkey() to X509_REQ_get0_pubkey() missed
one free of pkey in an unlikely error path. After the conversion pkey is
no longer owned by us, so we mustn't free it.
ok jsing
-/* $OpenBSD: x509.c,v 1.32 2023/04/09 17:28:52 tb Exp $ */
+/* $OpenBSD: x509.c,v 1.33 2023/04/14 06:47:07 tb Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
if ((pkey = X509_REQ_get0_pubkey(req)) == NULL)
goto end;
- if (!X509_set_pubkey(x, pkey)) {
- EVP_PKEY_free(pkey);
+ if (!X509_set_pubkey(x, pkey))
goto end;
- }
} else {
x = load_cert(bio_err, cfg.infile, cfg.informat, NULL,
"Certificate");