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.
pull/3495/head
Damien George 2017-12-19 15:42:58 +11:00
rodzic 8e6113a188
commit 374eaf5271
1 zmienionych plików z 1 dodań i 1 usunięć

Wyświetl plik

@ -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;
}