summaryrefslogtreecommitdiff
path: root/Zend/zend_interfaces.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2014-04-16 21:31:32 +0400
committerDmitry Stogov <dmitry@zend.com>2014-04-16 21:31:32 +0400
commit2d62a121289c248f3aa9adc1336f13e68ca8c1c6 (patch)
tree2dd6a7ba862f1d52d0e9ade0e37b3624200948bf /Zend/zend_interfaces.c
parent05817f1a9393f225a3a4a690de4caf9b3458b3cc (diff)
downloadphp-git-2d62a121289c248f3aa9adc1336f13e68ca8c1c6.tar.gz
Prevented modification of constant arguments
Diffstat (limited to 'Zend/zend_interfaces.c')
-rw-r--r--Zend/zend_interfaces.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/Zend/zend_interfaces.c b/Zend/zend_interfaces.c
index 3e9d9378b6..cf8889e0df 100644
--- a/Zend/zend_interfaces.c
+++ b/Zend/zend_interfaces.c
@@ -110,10 +110,10 @@ ZEND_API zval* zend_call_method(zval *object, zend_class_entry *obj_ce, zend_fun
}
}
/* copy arguments back, they might be changed by references */
- if (param_count > 0) {
+ if (param_count > 0 && Z_ISREF(params[0]) && !Z_ISREF_P(arg1)) {
ZVAL_COPY_VALUE(arg1, &params[0]);
}
- if (param_count > 1) {
+ if (param_count > 1 && Z_ISREF(params[1]) && !Z_ISREF_P(arg2)) {
ZVAL_COPY_VALUE(arg2, &params[1]);
}
if (!retval_ptr) {