diff options
| author | Xinchen Hui <laruence@gmail.com> | 2015-11-03 17:53:56 -0800 | 
|---|---|---|
| committer | Anatol Belski <ab@php.net> | 2015-11-08 02:55:02 +0100 | 
| commit | 46bb5a8cc957f2a12a25b51a90e0975713f75834 (patch) | |
| tree | 1300c61178d1a7582de93f04c5cac1b39bec38bf /Zend/zend_vm_def.h | |
| parent | 20b773438dcbb2da326c93a9af712f65bdfb73b3 (diff) | |
| download | php-git-46bb5a8cc957f2a12a25b51a90e0975713f75834.tar.gz | |
Fixed bug #70805 (Segmentation faults whilst running Drupal 8 test suite)
Diffstat (limited to 'Zend/zend_vm_def.h')
| -rw-r--r-- | Zend/zend_vm_def.h | 10 | 
1 files changed, 8 insertions, 2 deletions
| diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index ad6dc58ec9..1fc343b5cb 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -5513,8 +5513,14 @@ ZEND_VM_HANDLER(74, ZEND_UNSET_VAR, CONST|TMPVAR|CV, UNUSED|CONST|VAR)  				ZVAL_UNDEF(var);  				zval_dtor_func_for_ptr(garbage);  			} else { -				GC_ZVAL_CHECK_POSSIBLE_ROOT(var); -				ZVAL_UNDEF(var); +				zval *z = var; +				ZVAL_DEREF(z); +				if (Z_COLLECTABLE_P(z) && UNEXPECTED(!Z_GC_INFO_P(z))) { +					ZVAL_UNDEF(var); +					gc_possible_root(Z_COUNTED_P(z)); +				} else { +					ZVAL_UNDEF(var); +				}  			}  		} else {  			ZVAL_UNDEF(var); | 
