mirror of
https://github.com/php/php-src.git
synced 2026-03-24 08:12:21 +01:00
Merge branch 'PHP-7.0'
* PHP-7.0: Fixed test Revert "Fix bug #72162 (again)"
This commit is contained in:
@@ -2,10 +2,9 @@
|
||||
Bug #72162 (use-after-free - error_reporting)
|
||||
--FILE--
|
||||
<?php
|
||||
error_reporting(1);
|
||||
error_reporting(E_ALL);
|
||||
$var11 = new StdClass();
|
||||
$var16 = error_reporting($var11);
|
||||
?>
|
||||
okey
|
||||
--EXPECT--
|
||||
okey
|
||||
--EXPECTF--
|
||||
Catchable fatal error: Object of class stdClass could not be converted to string in %sbug72162.php on line %d
|
||||
|
||||
@@ -755,22 +755,23 @@ ZEND_FUNCTION(each)
|
||||
Return the current error_reporting level, and if an argument was passed - change to the new level */
|
||||
ZEND_FUNCTION(error_reporting)
|
||||
{
|
||||
zend_long err;
|
||||
zval *err;
|
||||
int old_error_reporting;
|
||||
|
||||
#ifndef FAST_ZPP
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "|l", &err) == FAILURE) {
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "|z", &err) == FAILURE) {
|
||||
return;
|
||||
}
|
||||
#else
|
||||
ZEND_PARSE_PARAMETERS_START(0, 1)
|
||||
Z_PARAM_OPTIONAL
|
||||
Z_PARAM_LONG(err)
|
||||
Z_PARAM_ZVAL(err)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
#endif
|
||||
|
||||
old_error_reporting = EG(error_reporting);
|
||||
if (ZEND_NUM_ARGS() != 0) {
|
||||
zend_string *new_val = zval_get_string(err);
|
||||
do {
|
||||
zend_ini_entry *p = EG(error_reporting_ini_entry);
|
||||
|
||||
@@ -796,8 +797,12 @@ ZEND_FUNCTION(error_reporting)
|
||||
zend_string_release(p->value);
|
||||
}
|
||||
|
||||
p->value = zend_long_to_str(err);
|
||||
EG(error_reporting) = err;
|
||||
p->value = new_val;
|
||||
if (Z_TYPE_P(err) == IS_LONG) {
|
||||
EG(error_reporting) = Z_LVAL_P(err);
|
||||
} else {
|
||||
EG(error_reporting) = atoi(ZSTR_VAL(p->value));
|
||||
}
|
||||
} while (0);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user