From: Aaron Piotrowski Date: Thu, 18 Jun 2015 00:48:17 +0000 (-0500) Subject: Fix bug when constructing an Error with invalid params X-Git-Tag: php-7.0.0alpha2~2^2~85 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8813b389ea745b4dfaa72700844063de4de22859;p=php Fix bug when constructing an Error with invalid params --- diff --git a/Zend/zend_exceptions.c b/Zend/zend_exceptions.c index aff602c6e8..f157abb155 100644 --- a/Zend/zend_exceptions.c +++ b/Zend/zend_exceptions.c @@ -242,21 +242,21 @@ ZEND_METHOD(exception, __construct) zend_class_entry *base_ce; int argc = ZEND_NUM_ARGS(); + object = getThis(); + base_ce = zend_get_exception_base(object); + if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, argc, "|SlO!", &message, &code, &previous, zend_ce_throwable) == FAILURE) { zend_class_entry *ce; if (execute_data->called_scope) { ce = execute_data->called_scope; } else { - ce = default_exception_ce; + ce = base_ce; } zend_error(E_EXCEPTION | E_ERROR, "Wrong parameters for %s([string $message [, long $code [, Throwable $previous = NULL]]])", ce->name->val); return; } - object = getThis(); - base_ce = zend_get_exception_base(object); - if (message) { zend_update_property_str(base_ce, object, "message", sizeof("message")-1, message); }