mirror of
https://github.com/php/php-src.git
synced 2024-09-22 18:37:25 +00:00
MFH: fix bug #38003(in classes inherited from mysqli it's possible to call private constructors from invalid context)
This commit is contained in:
parent
c4c96c042e
commit
0f8f945418
@ -293,11 +293,12 @@ void mysqli_add_property(HashTable *h, char *pname, mysqli_read_t r_func, mysqli
|
||||
static union _zend_function *php_mysqli_constructor_get(zval *object TSRMLS_DC)
|
||||
{
|
||||
mysqli_object *obj = (mysqli_object *)zend_objects_get_address(object TSRMLS_CC);
|
||||
zend_class_entry * ce = Z_OBJCE_P(object);
|
||||
|
||||
if (obj->zo.ce != mysqli_link_class_entry && obj->zo.ce != mysqli_stmt_class_entry &&
|
||||
obj->zo.ce != mysqli_result_class_entry && obj->zo.ce != mysqli_driver_class_entry &&
|
||||
obj->zo.ce != mysqli_warning_class_entry) {
|
||||
return obj->zo.ce->constructor;
|
||||
if (ce != mysqli_link_class_entry && ce != mysqli_stmt_class_entry &&
|
||||
ce != mysqli_result_class_entry && ce != mysqli_driver_class_entry &&
|
||||
ce != mysqli_warning_class_entry) {
|
||||
return zend_std_get_constructor(object TSRMLS_CC);
|
||||
} else {
|
||||
static zend_internal_function f;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user