Added missing MPI_CHK around mpi functions
diff --git a/library/rsa.c b/library/rsa.c
index 5abf6f6..4523368 100644
--- a/library/rsa.c
+++ b/library/rsa.c
@@ -1486,6 +1486,7 @@
  */
 int rsa_self_test( int verbose )
 {
+    int ret = 0;
 #if defined(POLARSSL_PKCS1_V15)
     size_t len;
     rsa_context rsa;
@@ -1499,14 +1500,14 @@
     rsa_init( &rsa, RSA_PKCS_V15, 0 );
 
     rsa.len = KEY_LEN;
-    mpi_read_string( &rsa.N , 16, RSA_N  );
-    mpi_read_string( &rsa.E , 16, RSA_E  );
-    mpi_read_string( &rsa.D , 16, RSA_D  );
-    mpi_read_string( &rsa.P , 16, RSA_P  );
-    mpi_read_string( &rsa.Q , 16, RSA_Q  );
-    mpi_read_string( &rsa.DP, 16, RSA_DP );
-    mpi_read_string( &rsa.DQ, 16, RSA_DQ );
-    mpi_read_string( &rsa.QP, 16, RSA_QP );
+    MPI_CHK( mpi_read_string( &rsa.N , 16, RSA_N  ) );
+    MPI_CHK( mpi_read_string( &rsa.E , 16, RSA_E  ) );
+    MPI_CHK( mpi_read_string( &rsa.D , 16, RSA_D  ) );
+    MPI_CHK( mpi_read_string( &rsa.P , 16, RSA_P  ) );
+    MPI_CHK( mpi_read_string( &rsa.Q , 16, RSA_Q  ) );
+    MPI_CHK( mpi_read_string( &rsa.DP, 16, RSA_DP ) );
+    MPI_CHK( mpi_read_string( &rsa.DQ, 16, RSA_DQ ) );
+    MPI_CHK( mpi_read_string( &rsa.QP, 16, RSA_QP ) );
 
     if( verbose != 0 )
         polarssl_printf( "  RSA key validation: " );
@@ -1586,11 +1587,12 @@
         polarssl_printf( "passed\n\n" );
 #endif /* POLARSSL_SHA1_C */
 
+cleanup:
     rsa_free( &rsa );
 #else /* POLARSSL_PKCS1_V15 */
     ((void) verbose);
 #endif /* POLARSSL_PKCS1_V15 */
-    return( 0 );
+    return( ret );
 }
 
 #endif