diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2020-08-13 14:59:39 +0200 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2020-08-13 16:13:02 +0200 |
commit | f5e6f9bd27d09b5fef6e0170c43a97a035067b7a (patch) | |
tree | 207b84b06501876ab7863a811bcf18b9de681b70 /ext/mysqli/mysqli.c | |
parent | a10f8876efb9f6864110ed4b9a453aa8b21d2972 (diff) | |
download | php-git-f5e6f9bd27d09b5fef6e0170c43a97a035067b7a.tar.gz |
Avoid fatal error on not found class in mysqli_fetch_object()
Instead use C zpp modifier and throw TypeError.
Diffstat (limited to 'ext/mysqli/mysqli.c')
-rw-r--r-- | ext/mysqli/mysqli.c | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/ext/mysqli/mysqli.c b/ext/mysqli/mysqli.c index 505b4c05c6..595c39fead 100644 --- a/ext/mysqli/mysqli.c +++ b/ext/mysqli/mysqli.c @@ -1164,19 +1164,11 @@ void php_mysqli_fetch_into_hash(INTERNAL_FUNCTION_PARAMETERS, int override_flags zend_class_entry *ce = NULL; if (into_object) { - zend_string *class_name = NULL; - - if (zend_parse_method_parameters(ZEND_NUM_ARGS(), getThis(), "O|Sa", &mysql_result, mysqli_result_class_entry, &class_name, &ctor_params) == FAILURE) { + if (zend_parse_method_parameters(ZEND_NUM_ARGS(), getThis(), "O|Ca", &mysql_result, mysqli_result_class_entry, &ce, &ctor_params) == FAILURE) { RETURN_THROWS(); } - if (class_name == NULL) { + if (ce == NULL) { ce = zend_standard_class_def; - } else { - ce = zend_fetch_class(class_name, ZEND_FETCH_CLASS_AUTO); - } - if (!ce) { - php_error_docref(NULL, E_WARNING, "Could not find class '%s'", ZSTR_VAL(class_name)); - return; } if (UNEXPECTED(ce->ce_flags & (ZEND_ACC_INTERFACE|ZEND_ACC_TRAIT|ZEND_ACC_IMPLICIT_ABSTRACT_CLASS|ZEND_ACC_EXPLICIT_ABSTRACT_CLASS))) { zend_throw_error(NULL, "Class %s cannot be instantiated", ZSTR_VAL(ce->name)); |