cvs: Zend(PHP_4_3) / zend_execute.c
| From: | Moriyoshi Koizumi | Date: | Thu, 04 Dec 2003 13:42:42 +0000 |
| Subject: | cvs: Zend(PHP_4_3) / zend_execute.c | ||
| Groups: | php.zend-engine.cvs | ||
| Request: | Send a blank email to php-zend-engine-cvs+get-2069@lists.php.net to get a copy of this message | ||
moriyoshi Thu Dec 4 08:42:42 2003 EDT
Modified files: (Branch: PHP_4_3)
/Zend zend_execute.c
Log:
MFZE2(r-1.559): Raise error in case dereference is performed on a scalar value.
Index: Zend/zend_execute.c
diff -u Zend/zend_execute.c:1.316.2.24 Zend/zend_execute.c:1.316.2.25
--- Zend/zend_execute.c:1.316.2.24 Wed Dec 3 17:14:25 2003
+++ Zend/zend_execute.c Thu Dec 4 08:42:42 2003
@@ -1313,6 +1313,10 @@
if (EX(Ts)[EX(opline)->result.u.var].EA.type == IS_STRING_OFFSET) {
zend_error(E_ERROR, "Cannot unset string offsets");
} else {
+ if (Z_TYPE_PP(EX(Ts)[EX(opline)->result.u.var].var.ptr_ptr) != IS_ARRAY) {
+ zend_error(E_ERROR, "Illegal scalar dereference");
+ }
+
PZVAL_UNLOCK(*EX(Ts)[EX(opline)->result.u.var].var.ptr_ptr);
if (EX(Ts)[EX(opline)->result.u.var].var.ptr_ptr != &EG(uninitialized_zval_ptr)) {
SEPARATE_ZVAL_IF_NOT_REF(EX(Ts)[EX(opline)->result.u.var].var.ptr_ptr);