diff options
-rw-r--r-- | mpz/powm.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/mpz/powm.c b/mpz/powm.c index 8b055cda4..7943099e6 100644 --- a/mpz/powm.c +++ b/mpz/powm.c @@ -176,6 +176,8 @@ pow (mpz_srcptr b, mpz_srcptr e, mpz_srcptr m, mpz_ptr r) if (mn == 0) DIVIDE_BY_ZERO; + TMP_MARK (marker); + es = SIZ (e); if (es <= 0) { @@ -185,6 +187,7 @@ pow (mpz_srcptr b, mpz_srcptr e, mpz_srcptr m, mpz_ptr r) m equals 1. */ SIZ(r) = (mn == 1 && mp[0] == 1) ? 0 : 1; PTR(r)[0] = 1; + TMP_FREE (marker); /* we haven't really allocated anything here */ return; } #if HANDLE_NEGATIVE_EXPONENT @@ -210,8 +213,6 @@ pow (mpz_srcptr b, mpz_srcptr e, mpz_srcptr m, mpz_ptr r) } #endif - TMP_MARK (marker); - use_redc = mn < POWM_THRESHOLD && mp[0] % 2 != 0; if (use_redc) { |