summaryrefslogtreecommitdiff
path: root/Zend/zend_operators.c
diff options
context:
space:
mode:
authorNikita Popov <nikic@php.net>2015-01-07 23:21:12 +0100
committerNikita Popov <nikic@php.net>2015-01-07 23:21:12 +0100
commit3e826c97366044991ae3c892e00d607449f69d66 (patch)
tree5c51af11da2f842023bd613fd95956e1930663c4 /Zend/zend_operators.c
parent98c2ceacf81116065028cb18a918adafe7a38ee2 (diff)
downloadphp-git-3e826c97366044991ae3c892e00d607449f69d66.tar.gz
Fix the same leak with %=
Diffstat (limited to 'Zend/zend_operators.c')
-rw-r--r--Zend/zend_operators.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c
index 31d92c4711..0b1b9f2188 100644
--- a/Zend/zend_operators.c
+++ b/Zend/zend_operators.c
@@ -1143,6 +1143,10 @@ ZEND_API int mod_function(zval *result, zval *op1, zval *op2) /* {{{ */
zend_long op1_lval, op2_lval;
convert_op1_op2_long(op1, op1_lval, op2, op2_lval, ZEND_MOD, mod_function);
+
+ if (op1 == result) {
+ zval_dtor(result);
+ }
if (op2_lval == 0) {
zend_error(E_WARNING, "Division by zero");
@@ -1156,9 +1160,6 @@ ZEND_API int mod_function(zval *result, zval *op1, zval *op2) /* {{{ */
return SUCCESS;
}
- if (op1 == result) {
- zval_dtor(result);
- }
ZVAL_LONG(result, op1_lval % op2_lval);
return SUCCESS;
}