mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
Merge branch 'PHP-7.1'
* PHP-7.1: Fixed #73973 - debug_zval_dump() assertion error for resource consts with --enable-debug
This commit is contained in:
commit
306f55bef4
4 changed files with 14 additions and 12 deletions
1
NEWS
1
NEWS
|
@ -25,6 +25,7 @@ PHP NEWS
|
|||
. Fixed bug #73969 (segfault in debug_print_backtrace). (andrewnester)
|
||||
. Added PHP_OS_FAMILY constant to determine on which OS we are. (Jan Altensen)
|
||||
. Fixed bug #73994 (arginfo incorrect for unpack). (krakjoe)
|
||||
. Fixed bug #73973 (assertion error in debug_zval_dump). (andrewnester)
|
||||
|
||||
- BCMath:
|
||||
. Fixed bug #46564 (bcmod truncates fractionals). (liborm85)
|
||||
|
|
|
@ -879,9 +879,6 @@ static void copy_constant_array(zval *dst, zval *src) /* {{{ */
|
|||
}
|
||||
} else if (Z_REFCOUNTED_P(val)) {
|
||||
Z_ADDREF_P(val);
|
||||
if (UNEXPECTED(Z_TYPE_INFO_P(val) == IS_RESOURCE_EX)) {
|
||||
Z_TYPE_INFO_P(new_val) &= ~(IS_TYPE_REFCOUNTED << Z_TYPE_FLAGS_SHIFT);
|
||||
}
|
||||
}
|
||||
} ZEND_HASH_FOREACH_END();
|
||||
}
|
||||
|
@ -924,12 +921,7 @@ repeat:
|
|||
case IS_FALSE:
|
||||
case IS_TRUE:
|
||||
case IS_NULL:
|
||||
break;
|
||||
case IS_RESOURCE:
|
||||
ZVAL_COPY(&val_free, val);
|
||||
/* TODO: better solution than this tricky disable dtor on resource? */
|
||||
Z_TYPE_INFO(val_free) &= ~(IS_TYPE_REFCOUNTED << Z_TYPE_FLAGS_SHIFT);
|
||||
val = &val_free;
|
||||
break;
|
||||
case IS_ARRAY:
|
||||
if (Z_REFCOUNTED_P(val)) {
|
||||
|
|
|
@ -345,6 +345,10 @@ void shutdown_executor(void) /* {{{ */
|
|||
zend_llist_destroy(&CG(open_files));
|
||||
} zend_end_try();
|
||||
|
||||
zend_try {
|
||||
clean_non_persistent_constants();
|
||||
} zend_end_try();
|
||||
|
||||
zend_try {
|
||||
zend_close_rsrc_list(&EG(regular_list));
|
||||
} zend_end_try();
|
||||
|
@ -376,10 +380,6 @@ void shutdown_executor(void) /* {{{ */
|
|||
}
|
||||
} zend_end_try();
|
||||
|
||||
zend_try {
|
||||
clean_non_persistent_constants();
|
||||
} zend_end_try();
|
||||
|
||||
zend_try {
|
||||
#if 0&&ZEND_DEBUG
|
||||
signal(SIGSEGV, original_sigsegv_handler);
|
||||
|
|
9
ext/standard/tests/general_functions/bug73973.phpt
Normal file
9
ext/standard/tests/general_functions/bug73973.phpt
Normal file
|
@ -0,0 +1,9 @@
|
|||
--TEST--
|
||||
Bug #73973 debug_zval_dump() assertion error for resource consts with --enable-debug
|
||||
--FILE--
|
||||
<?php
|
||||
define('myerr', fopen('php://stderr', 'w'));
|
||||
debug_zval_dump(myerr);
|
||||
?>
|
||||
--EXPECTF--
|
||||
resource(5) of type (stream) refcount(%d)
|
Loading…
Add table
Add a link
Reference in a new issue