summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mpz/powm.c5
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)
{