Fix misplaced initialisation.
If one of the calls to mpi_grow() before setting Apos would fail, then
mpi_free( &Apos ) would be executed without Apos being initialised.
diff --git a/library/bignum.c b/library/bignum.c
index 23a3f68..c26842f 100644
--- a/library/bignum.c
+++ b/library/bignum.c
@@ -1410,6 +1410,7 @@
*/
mpi_montg_init( &mm, N );
mpi_init( &RR ); mpi_init( &T );
+ mpi_init( &Apos );
memset( W, 0, sizeof( W ) );
i = mpi_msb( E );
@@ -1429,8 +1430,6 @@
* Compensate for negative A (and correct at the end)
*/
neg = ( A->s == -1 );
-
- mpi_init( &Apos );
if( neg )
{
MPI_CHK( mpi_copy( &Apos, A ) );