From 0484413b865769f480e9df17beec2b2d4fec62e9 Mon Sep 17 00:00:00 2001 From: Ilia Alshanetsky Date: Tue, 26 Oct 2004 22:40:51 +0000 Subject: [PATCH] MFH: Fixed bug #30572 (crash when comparing SimpleXML attribute to a boolean). --- NEWS | 2 ++ Zend/zend_operators.c | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 54ec4f7730..5031919733 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,8 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ?? ??? 2004, PHP 5.0.3 - Fixed potential problems with unserializing invalid serialize data. (Marcus) +- Fixed bug #30572 (crash when comparing SimpleXML attribute to a boolean). + (Ilia) - Fixed bug #30475 (curl_getinfo() may crash in some situations). (Ilia) - Fixed bug #30442 (segfault when parsing ?getvariable[][ ). (Tony) - Fixed bug #30387 (stream_socket_client async connect was broken). diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c index 76c21878ec..3890bc13e4 100644 --- a/Zend/zend_operators.c +++ b/Zend/zend_operators.c @@ -1330,7 +1330,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); -- 2.50.1