diff options
author | Zeev Suraski <zeev@php.net> | 2000-10-29 19:16:29 +0000 |
---|---|---|
committer | Zeev Suraski <zeev@php.net> | 2000-10-29 19:16:29 +0000 |
commit | d0fbddcc2b363bb69ecc10c507f8172a47d1727b (patch) | |
tree | 1d825778334c11d1dfe2e765aa7b577dc83abed3 /Zend/zend_execute.c | |
parent | 366c16e561662096246167d5dcf959661e8994a3 (diff) | |
download | php-git-d0fbddcc2b363bb69ecc10c507f8172a47d1727b.tar.gz |
Fix a corruption bug, when erroneously allowing to send non-variables by reference (several
bug-db reports seem to originate in this bug)
Diffstat (limited to 'Zend/zend_execute.c')
-rw-r--r-- | Zend/zend_execute.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index f4c3d030ba..6035be3d0c 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -1651,9 +1651,13 @@ do_fcall_common: } NEXT_OPCODE(); case ZEND_SEND_VAR: + case ZEND_SEND_VAR_NO_REF: if (opline->extended_value==ZEND_DO_FCALL_BY_NAME && ARG_SHOULD_BE_SENT_BY_REF(opline->op2.u.opline_num, fbc, fbc->common.arg_types)) { - goto send_by_ref; + if (opline->opcode==ZEND_SEND_VAR_NO_REF) { + zend_error(E_ERROR, "Only variables can be passed by reference"); + } + goto send_by_ref; } { zval *varptr; |