From 3e201ac2812081a52b9f5d6b68f744aa3b16dfe1 Mon Sep 17 00:00:00 2001 From: Andi Gutmans Date: Sat, 11 Sep 2004 00:23:20 +0000 Subject: [PATCH] - Resolve undefined behavior (joe at redhat) --- Zend/zend_operators.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c index 8ef15ba102..446c62bbc3 100644 --- a/Zend/zend_operators.c +++ b/Zend/zend_operators.c @@ -183,7 +183,15 @@ ZEND_API void convert_scalar_to_number(zval *op TSRMLS_DC) } -#define DVAL_TO_LVAL(d, l) (l) = (d) > LONG_MAX ? (unsigned long) (d) : (long) (d) +#define DVAL_TO_LVAL(d, l) do { \ + if ((d) > LONG_MAX) { \ + l = LONG_MAX; \ + } else if ((d) < LONG_MIN) { \ + l = LONG_MIN; \ + } else { \ + l = (d); \ + } \ +} while (0) #define zendi_convert_to_long(op, holder, result) \ if (op==result) { \ -- 2.40.0