fix x86_64-specific crash with one-word modulus.
PR: #3397
(Imported from upstream's 47b9e06cfd3a4fa89a690309e5839ed57e93f0f8)
Change-Id: I92d46a3132233c179f4b708d506bfb7212c26a33
diff --git a/crypto/bn/exponentiation.c b/crypto/bn/exponentiation.c
index 2a6ec43..0c9d7a7 100644
--- a/crypto/bn/exponentiation.c
+++ b/crypto/bn/exponentiation.c
@@ -982,7 +982,7 @@
/* Dedicated window==4 case improves 512-bit RSA sign by ~15%, but as
* 512-bit RSA is hardly relevant, we omit it to spare size... */
- if (window == 5) {
+ if (window == 5 && top > 1) {
void bn_mul_mont_gather5(BN_ULONG * rp, const BN_ULONG * ap,
const void * table, const BN_ULONG * np,
const BN_ULONG * n0, int num, int power);