summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndi Gutmans <andi@php.net>2003-12-11 10:21:16 +0000
committerAndi Gutmans <andi@php.net>2003-12-11 10:21:16 +0000
commit5ba810ee46752fd338fd68ff48616c433abaed06 (patch)
tree391e3d4ff6d36b8e1c1cc3d35e2aa46366c3b8f1
parent904373a83086fe66982dcbed8d92c653b9f73907 (diff)
downloadphp-git-5ba810ee46752fd338fd68ff48616c433abaed06.tar.gz
- Refix bug #24773
-rw-r--r--Zend/zend_execute.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index 848fab4c17..2ef172c8cb 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -1950,11 +1950,13 @@ int zend_fetch_dim_unset_handler(ZEND_OPCODE_HANDLER_ARGS)
}
*/
zend_fetch_dimension_address(&EX(opline)->result, &EX(opline)->op1, &EX(opline)->op2, EX(Ts), BP_VAR_R TSRMLS_CC);
- PZVAL_UNLOCK(*EX_T(EX(opline)->result.u.var).var.ptr_ptr);
- if (EX_T(EX(opline)->result.u.var).var.ptr_ptr != &EG(uninitialized_zval_ptr)) {
- SEPARATE_ZVAL_IF_NOT_REF(EX_T(EX(opline)->result.u.var).var.ptr_ptr);
+ if (EX_T(EX(opline)->result.u.var).var.ptr_ptr != NULL) {
+ PZVAL_UNLOCK(*EX_T(EX(opline)->result.u.var).var.ptr_ptr);
+ if (EX_T(EX(opline)->result.u.var).var.ptr_ptr != &EG(uninitialized_zval_ptr)) {
+ SEPARATE_ZVAL_IF_NOT_REF(EX_T(EX(opline)->result.u.var).var.ptr_ptr);
+ }
+ PZVAL_LOCK(*EX_T(EX(opline)->result.u.var).var.ptr_ptr);
}
- PZVAL_LOCK(*EX_T(EX(opline)->result.u.var).var.ptr_ptr);
NEXT_OPCODE();
}