From 6f1c2f04a073cab085357586119190c22d3af905 Mon Sep 17 00:00:00 2001 From: Ilia Alshanetsky Date: Wed, 30 Jan 2008 18:27:03 +0000 Subject: [PATCH] MFB: Fixed bug #43981 (gmp_div_r() does not preserve the sign of 1st argument) --- NEWS | 2 ++ ext/gmp/gmp.c | 3 +++ 2 files changed, 5 insertions(+) diff --git a/NEWS b/NEWS index 26232405ed..7214e9cdc8 100644 --- a/NEWS +++ b/NEWS @@ -8,6 +8,8 @@ PHP NEWS which to group by data is specified. (Ilia) - Upgraded PCRE to version 7.6 (Nuno) +- Fixed bug #43981 (gmp_div_r() does not preserve the sign of 1st argument). + (Ilia) - Fixed bug #43954 (Memory leak when sending the same HTTP status code multiple times). (Scott) - Fixed bug #43927 (koi8r is missing from html_entity_decode()). diff --git a/ext/gmp/gmp.c b/ext/gmp/gmp.c index 09f468d1b5..6bfa9fe54c 100644 --- a/ext/gmp/gmp.c +++ b/ext/gmp/gmp.c @@ -552,6 +552,9 @@ static inline void gmp_zval_binary_ui_op_ex(zval *return_value, zval **a_arg, zv if (use_ui && gmp_ui_op) { if (allow_ui_return) { long_result = gmp_ui_op(*gmpnum_result, *gmpnum_a, (unsigned long)Z_LVAL_PP(b_arg)); + if (mpz_sgn(*gmpnum_a) == -1) { + long_result = -long_result; + } } else { gmp_ui_op(*gmpnum_result, *gmpnum_a, (unsigned long)Z_LVAL_PP(b_arg)); } -- 2.40.0