ID:              28525
 User updated by: pickett at sumu dot org
 Reported By:     pickett at sumu dot org
 Status:          Open
 Bug Type:        *Math Functions
 PHP Version:     4.3.7RC1
 New Comment:

Here's a fix

--- php-4.3.7RC1/ext/gmp/gmp.c  2004-02-16 17:13:49.000000000 +0200
+++ php-4.3.7RC1/ext/gmp/gmp.c  2004-05-28 12:56:59.000000000 +0300
@@ -830,8 +830,7 @@
        }
        FETCH_GMP_ZVAL(gmpnum_mod, mod_arg);

-       convert_to_long_ex(mod_arg);
-       if (!Z_LVAL_PP(mod_arg)) {
+       if(mpz_cmp_ui(*gmpnum_mod, 0) == 0) {
                RETURN_FALSE;
        }


Previous Comments:
------------------------------------------------------------------------

[2004-05-26 19:39:50] pickett at sumu dot org

I used "0x1" here for brevity.  In real world I use gmp_powm() for
diffie-hellman key exchange with vastly larger numbers that can't be
represented as normal integers in php.

------------------------------------------------------------------------

[2004-05-26 19:24:09] [EMAIL PROTECTED]

Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

Do not pass hex numbers as strings. 
var_dump(gmp_powm(0x1, 0x1, 0x1)); 
 
works fine. 

------------------------------------------------------------------------

[2004-05-26 11:08:10] pickett at sumu dot org

Description:
------------
Fix for bug #27172 broke hexadecimal string modulos for gmp_powm().

Reproduce code:
---------------
var_dump(gmp_powm("0x1", "0x1", "0x1"))

Expected result:
----------------
resource(4) of type (GMP integer)


Actual result:
--------------
bool(false)



------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=28525&edit=1

Reply via email to