summaryrefslogtreecommitdiff
path: root/Zend/zend_operators.c
diff options
context:
space:
mode:
authorIlia Alshanetsky <iliaa@php.net>2004-10-26 22:38:34 +0000
committerIlia Alshanetsky <iliaa@php.net>2004-10-26 22:38:34 +0000
commitbb928e70a7989d71620fc268ab3dc6c9a5db94f4 (patch)
treeadadf2fc43d7474a42d9bde821245a737593fb3b /Zend/zend_operators.c
parent12a678ca6a3636e4347ab2c366090d8332c923b3 (diff)
downloadphp-git-bb928e70a7989d71620fc268ab3dc6c9a5db94f4.tar.gz
Fixed bug #30228 (crash when comparing SimpleXML attribute to a boolean).
Diffstat (limited to 'Zend/zend_operators.c')
-rw-r--r--Zend/zend_operators.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c
index 4fea659469..893d3b6858 100644
--- a/Zend/zend_operators.c
+++ b/Zend/zend_operators.c
@@ -1323,7 +1323,11 @@ ZEND_API int compare_function(zval *result, zval *op1, zval *op2 TSRMLS_DC)
if (op1->type == IS_BOOL || op2->type == IS_BOOL
|| op1->type == IS_NULL || op2->type == IS_NULL) {
- zendi_convert_to_boolean(op1, op1_copy, result);
+ if (free_op1) {
+ convert_to_boolean(op1);
+ } else {
+ zendi_convert_to_boolean(op1, op1_copy, result);
+ }
zendi_convert_to_boolean(op2, op2_copy, result);
result->type = IS_LONG;
result->value.lval = ZEND_NORMALIZE_BOOL(op1->value.lval-op2->value.lval);