In acme_gen_tmp_x509(), if X509_set_issuer_name() fails, the code
jumped to the mkcert_error label without freeing the previously
allocated X509_NAME object. The other error paths after X509_NAME_new()
(X509_NAME_add_entry_by_txt and X509_set_subject_name) already properly
freed the name before jumping to mkcert_error, but this one was missed.
Fix this by freeing name before the goto, consistent with the other
error paths in the same function.
Must be backported as far as 3.3.
goto mkcert_error;
}
/* Set issuer name as itself */
- if (X509_set_issuer_name(newcrt, name) != 1)
+ if (X509_set_issuer_name(newcrt, name) != 1) {
+ X509_NAME_free(name);
goto mkcert_error;
+ }
X509_NAME_free(name);
/* Autosign the certificate with the private key */