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 eb7a822..680c25a 100644
--- a/library/bignum.c
+++ b/library/bignum.c
@@ -1527,6 +1527,7 @@
*/
mpi_montg_init( &mm, N );
mpi_init( &RR ); mpi_init( &T );
+ mpi_init( &Apos );
memset( W, 0, sizeof( W ) );
i = mpi_msb( E );
@@ -1546,8 +1547,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 ) );