diff options
Diffstat (limited to 'ext')
-rw-r--r-- | ext/bcmath/libbcmath/src/divmod.c | 2 | ||||
-rw-r--r-- | ext/bcmath/tests/bug44995.phpt | 16 |
2 files changed, 17 insertions, 1 deletions
diff --git a/ext/bcmath/libbcmath/src/divmod.c b/ext/bcmath/libbcmath/src/divmod.c index d7aaa3509d..08c2f8a2a2 100644 --- a/ext/bcmath/libbcmath/src/divmod.c +++ b/ext/bcmath/libbcmath/src/divmod.c @@ -59,7 +59,7 @@ bc_divmod (bc_num num1, bc_num num2, bc_num *quot, bc_num *rem, int scale) bc_init_num(&temp); /* Calculate it. */ - bc_divide (num1, num2, &temp, scale); + bc_divide (num1, num2, &temp, 0); if (quot) quotient = bc_copy_num (temp); bc_multiply (temp, num2, &temp, rscale); diff --git a/ext/bcmath/tests/bug44995.phpt b/ext/bcmath/tests/bug44995.phpt new file mode 100644 index 0000000000..6eb591f92b --- /dev/null +++ b/ext/bcmath/tests/bug44995.phpt @@ -0,0 +1,16 @@ +--TEST-- +Bug #44995 (bcpowmod() fails if scale != 0) +--SKIPIF-- +<?php +if (!extension_loaded('bcmath')) die('skip bcmath extension not available'); +?> +--FILE-- +<?php +var_dump(bcpowmod('4', '4', '3', 1)); +var_dump(bcpowmod('3234', '32345', '22345', 1)); +?> +===DONE=== +--EXPECT-- +string(3) "1.0" +string(7) "17334.0" +===DONE=== |