Darrel Hankerson <dhankers@cacr.math.uwaterloo.ca> correctly discovered
that of the result pointer to bn_mul was the same as one of the two arguments, That argument might have it's sign destroyed. He provided this fix.
This commit is contained in:
parent
34f0fe9de0
commit
47ff5de8c2
@ -631,7 +631,6 @@ int BN_mul(BIGNUM *r, BIGNUM *a, BIGNUM *b, BN_CTX *ctx)
|
|||||||
|
|
||||||
al=a->top;
|
al=a->top;
|
||||||
bl=b->top;
|
bl=b->top;
|
||||||
r->neg=a->neg^b->neg;
|
|
||||||
|
|
||||||
if ((al == 0) || (bl == 0))
|
if ((al == 0) || (bl == 0))
|
||||||
{
|
{
|
||||||
@ -647,6 +646,7 @@ int BN_mul(BIGNUM *r, BIGNUM *a, BIGNUM *b, BN_CTX *ctx)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
rr = r;
|
rr = r;
|
||||||
|
rr->neg=a->neg^b->neg;
|
||||||
|
|
||||||
#if defined(BN_MUL_COMBA) || defined(BN_RECURSION)
|
#if defined(BN_MUL_COMBA) || defined(BN_RECURSION)
|
||||||
i = al-bl;
|
i = al-bl;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user