diff --git a/UPGRADING.INTERNALS b/UPGRADING.INTERNALS index 1b041da5affe..f23a610b8499 100644 --- a/UPGRADING.INTERNALS +++ b/UPGRADING.INTERNALS @@ -88,6 +88,10 @@ PHP 8.6 INTERNALS UPGRADE NOTES 4. OpCode changes ======================== +- Added ZEND_TYPE_ASSERT to check a value's type against the parameter + type of a function, throwing a TypeError on failure as if the function + was called. Used in optimizations that elide function calls. + ======================== 5. SAPI changes ======================== diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c index 90c900d136ac..fd7bc6ac57e9 100644 --- a/ext/openssl/openssl.c +++ b/ext/openssl/openssl.c @@ -1032,6 +1032,11 @@ PHP_FUNCTION(openssl_x509_parse) subject_name = X509_get_subject_name(cert); cert_name = X509_NAME_oneline(subject_name, NULL, 0); + if (cert_name == NULL) { + php_openssl_store_errors(); + goto err; + } + add_assoc_string(return_value, "name", cert_name); OPENSSL_free(cert_name); @@ -1064,6 +1069,12 @@ PHP_FUNCTION(openssl_x509_parse) } str_serial = i2s_ASN1_INTEGER(NULL, asn1_serial); + /* Can return NULL on error or memory allocation failure */ + if (!str_serial) { + php_openssl_store_errors(); + goto err; + } + add_assoc_string(return_value, "serialNumber", str_serial); OPENSSL_free(str_serial);