Commit 1fa8c0f32a4 for php.net
commit 1fa8c0f32a47ad5f19e2bfdd9bdbe0219790126b
Merge: b7c855f4c2d ebaaa7dbd32
Author: ndossche <7771979+ndossche@users.noreply.github.com>
Date: Sat Apr 4 10:28:56 2026 +0200
Merge branch 'PHP-8.5'
* PHP-8.5:
Fix memory leaks when php_openssl_dh_pub_from_priv() fails
openssl: Propagate PHP_OPENSSL_ASN1_INTEGER_set() failure
diff --cc ext/openssl/openssl_backend_v1.c
index 0f254fb5857,6b1ab9ed056..07d414ab88a
--- a/ext/openssl/openssl_backend_v1.c
+++ b/ext/openssl/openssl_backend_v1.c
@@@ -201,8 -201,13 +201,13 @@@ static bool php_openssl_pkey_init_dh_da
OPENSSL_PKEY_SET_BN(data, p);
OPENSSL_PKEY_SET_BN(data, q);
OPENSSL_PKEY_SET_BN(data, g);
- if (!p || !g || !DH_set0_pqg(dh, p, q, g)) {
+ if (!p || !q) {
+ BN_free(p);
- return 0;
++ return false;
+ }
+
+ if (!DH_set0_pqg(dh, p, q, g)) {
- return 0;
+ return false;
}
OPENSSL_PKEY_SET_BN(data, priv_key);
@@@ -214,7 -219,11 +219,11 @@@
if (priv_key) {
pub_key = php_openssl_dh_pub_from_priv(priv_key, g, p);
if (pub_key == NULL) {
+ BN_free(p);
+ BN_free(q);
+ BN_free(g);
+ BN_free(priv_key);
- return 0;
+ return false;
}
return DH_set0_key(dh, pub_key, priv_key);
}