diff options
| author | Moriyoshi Koizumi <moriyoshi@php.net> | 2003-12-04 13:38:30 +0000 |
|---|---|---|
| committer | Moriyoshi Koizumi <moriyoshi@php.net> | 2003-12-04 13:38:30 +0000 |
| commit | bcbc036ac1989e646a3281b7a5843eb21ac8b42c (patch) | |
| tree | f1e25c39a373c586f5918549b27bd35aad25e727 | |
| parent | c09003a91079619e51574df129cd8000fc3d58a9 (diff) | |
| download | php-git-bcbc036ac1989e646a3281b7a5843eb21ac8b42c.tar.gz | |
Raise error in case dereference is performed on a scalar value.
| -rw-r--r-- | Zend/zend_execute.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index 39387b9fcd..2799b2a5bb 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -1949,6 +1949,10 @@ int zend_fetch_dim_unset_handler(ZEND_OPCODE_HANDLER_ARGS) if (EX_T(EX(opline)->result.u.var).EA.type == IS_STRING_OFFSET) { zend_error(E_ERROR, "Cannot unset string offsets"); } else { + if (Z_TYPE_PP(EX_T(EX(opline)->result.u.var).var.ptr_ptr) != IS_ARRAY) { + zend_error(E_ERROR, "Illegal scalar dereference"); + } + 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); |
