cvs: ZendEngine2 / zend_execute.c
| From: | Moriyoshi Koizumi | Date: | Thu, 04 Dec 2003 13:38:30 +0000 |
| Subject: | cvs: ZendEngine2 / zend_execute.c | ||
| Groups: | php.zend-engine.cvs | ||
| Request: | Send a blank email to php-zend-engine-cvs+get-2068@lists.php.net to get a copy of this message | ||
moriyoshi Thu Dec 4 08:38:30 2003 EDT
Modified files:
/ZendEngine2 zend_execute.c
Log:
Raise error in case dereference is performed on a scalar value.
Index: ZendEngine2/zend_execute.c
diff -u ZendEngine2/zend_execute.c:1.558 ZendEngine2/zend_execute.c:1.559
--- ZendEngine2/zend_execute.c:1.558 Wed Dec 3 17:08:58 2003
+++ ZendEngine2/zend_execute.c Thu Dec 4 08:38:30 2003
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_execute.c,v 1.558 2003/12/03 22:08:58 moriyoshi Exp $ */
+/* $Id: zend_execute.c,v 1.559 2003/12/04 13:38:30 moriyoshi Exp $ */
#define ZEND_INTENSIVE_DEBUGGING 0
@@ -1949,6 +1949,10 @@
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);