If n0 == d0, we must alway compute 'rem' "by hand"

This commit is contained in:
Bodo Möller 2000-02-01 11:10:54 +00:00
parent fe7cd1647d
commit cb5b7850ac

View File

@ -235,8 +235,13 @@ int BN_div(BIGNUM *dv, BIGNUM *rm, const BIGNUM *num, const BIGNUM *divisor,
n0=wnump[0];
n1=wnump[-1];
if (n0 == d0)
{
q=BN_MASK2;
else
#ifdef REMAINDER_IS_ALREADY_CALCULATED /* in this case it isn't */
rem=(n1-q*d0)&BN_MASK2;
#endif
}
else /* n0 < d0 */
#if defined(BN_LLONG) && defined(BN_DIV2W) && !defined(bn_div_words)
q=(BN_ULONG)(((((BN_ULLONG)n0)<<BN_BITS2)|n1)/d0);
#else