Perform check before initialization
diff --git a/library/ecp.c b/library/ecp.c
index c281d84..98c5fa9 100644
--- a/library/ecp.c
+++ b/library/ecp.c
@@ -1945,13 +1945,13 @@
int ret;
mbedtls_mpi M, mm;
+ /* N is always odd (see above), just make extra sure */
+ if( mbedtls_mpi_get_bit( &grp->N, 0 ) == 0 )
+ return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA );
+
mbedtls_mpi_init( &M );
mbedtls_mpi_init( &mm );
- /* N is always odd (see above), just make extra sure */
- if( mbedtls_mpi_get_bit( &grp->N, 0 ) != 1 )
- return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA );
-
/* do we need the parity trick? */
*parity_trick = ( mbedtls_mpi_get_bit( m, 0 ) == 0 );