py/mpz: Fix pow3 function so it handles the case when 3rd arg is 1.

In this case the result should always be 0, even if 2nd arg is 0.
This commit is contained in:
Damien George 2017-12-19 15:42:58 +11:00
parent 8e6113a188
commit 374eaf5271

View file

@ -1390,7 +1390,7 @@ void mpz_pow_inpl(mpz_t *dest, const mpz_t *lhs, const mpz_t *rhs) {
can have dest, lhs, rhs the same; mod can't be the same as dest
*/
void mpz_pow3_inpl(mpz_t *dest, const mpz_t *lhs, const mpz_t *rhs, const mpz_t *mod) {
if (lhs->len == 0 || rhs->neg != 0) {
if (lhs->len == 0 || rhs->neg != 0 || (mod->len == 1 && mod->dig[0] == 1)) {
mpz_set_from_int(dest, 0);
return;
}