diff options
| author | Andrei Zmievski <andrei@php.net> | 2005-04-15 17:15:18 +0000 | 
|---|---|---|
| committer | Andrei Zmievski <andrei@php.net> | 2005-04-15 17:15:18 +0000 | 
| commit | 4fbddd03d7999353daf6ad66cd612e73c950bdfe (patch) | |
| tree | 8c293f8ec9ceee58dd0a937b45136ec5cd4832d8 /Zend/zend_execute.c | |
| parent | 91b587f884a62a831b1468e4a6f609bd576b23aa (diff) | |
| download | php-git-4fbddd03d7999353daf6ad66cd612e73c950bdfe.tar.gz | |
Fix certain operations to stop relying on presence of read_property and
write_property handlers. They may be NULL'ed out by certain objects
pretending to be pure arrays, for example. Do checks first.
Diffstat (limited to 'Zend/zend_execute.c')
| -rw-r--r-- | Zend/zend_execute.c | 2 | 
1 files changed, 1 insertions, 1 deletions
| diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index 624c341f1c..61cc2c459c 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -617,7 +617,7 @@ static inline void zend_assign_to_object(znode *result, zval **object_ptr, znode  	make_real_object(object_ptr TSRMLS_CC); /* this should modify object only if it's empty */  	object = *object_ptr; -	if (object->type != IS_OBJECT) { +	if (object->type != IS_OBJECT || (opcode == ZEND_ASSIGN_OBJ && !Z_OBJ_HT_P(object)->write_property)) {  		zend_error(E_WARNING, "Attempt to assign property of non-object");  		FREE_OP(free_op2);  		if (!RETURN_VALUE_UNUSED(result)) { | 
