generally a more efficient comparison than comparing two integers, and the
first of these two loops was off-by-one (copying one too many values). This
change also removes a superfluous assignment that would set an unused word
to zero (and potentially allow an overrun in some cases).
Submitted by: Nils Larsch
Reviewed by: Geoff Thorpe
if (rb == 0)
{
- for (i=j+1; i > 0; i--)
+ for (i=j; i != 0; i--)
*(t++)= *(f++);
}
else
{
l= *(f++);
- for (i=1; i<j; i++)
+ for (i=j-1; i != 0; i--)
{
tmp =(l>>rb)&BN_MASK2;
l= *(f++);
}
*(t++) =(l>>rb)&BN_MASK2;
}
- *t=0;
bn_correct_top(r);
bn_check_top(r);
return(1);