summaryrefslogtreecommitdiff
path: root/Zend/zend_vm_execute.h
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2009-07-28 12:35:27 +0000
committerDmitry Stogov <dmitry@php.net>2009-07-28 12:35:27 +0000
commitff766c1de20dc1e6debcb3bced82c890172bf134 (patch)
tree584b13c72badeb9490a64bf3aee696b9f5f79cc4 /Zend/zend_vm_execute.h
parent421b6e0f2c0f5219c363901e076ecdf7c037b995 (diff)
downloadphp-git-ff766c1de20dc1e6debcb3bced82c890172bf134.tar.gz
Fixed bug #48912 (Namespace causes unexpected strict behaviour with extract())
Diffstat (limited to 'Zend/zend_vm_execute.h')
-rw-r--r--Zend/zend_vm_execute.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h
index 2c3e7875a4..43bc3abde5 100644
--- a/Zend/zend_vm_execute.h
+++ b/Zend/zend_vm_execute.h
@@ -8278,7 +8278,9 @@ static int ZEND_FASTCALL ZEND_SEND_VAR_NO_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HAND
} else {
zval *valptr;
- if (!(opline->extended_value & ZEND_ARG_SEND_SILENT)) {
+ if ((opline->extended_value & ZEND_ARG_COMPILE_TIME_BOUND) ?
+ !(opline->extended_value & ZEND_ARG_SEND_SILENT) :
+ !ARG_MAY_BE_SENT_BY_REF(EX(fbc), opline->op2.u.opline_num)) {
zend_error(E_STRICT, "Only variables should be passed by reference");
}
ALLOC_ZVAL(valptr);
@@ -22128,7 +22130,9 @@ static int ZEND_FASTCALL ZEND_SEND_VAR_NO_REF_SPEC_CV_HANDLER(ZEND_OPCODE_HANDL
} else {
zval *valptr;
- if (!(opline->extended_value & ZEND_ARG_SEND_SILENT)) {
+ if ((opline->extended_value & ZEND_ARG_COMPILE_TIME_BOUND) ?
+ !(opline->extended_value & ZEND_ARG_SEND_SILENT) :
+ !ARG_MAY_BE_SENT_BY_REF(EX(fbc), opline->op2.u.opline_num)) {
zend_error(E_STRICT, "Only variables should be passed by reference");
}
ALLOC_ZVAL(valptr);