Added missing MPI_CHK around mpi functions
diff --git a/library/asn1write.c b/library/asn1write.c
index 13f4a39..626e0ff 100644
--- a/library/asn1write.c
+++ b/library/asn1write.c
@@ -109,7 +109,7 @@
         return( POLARSSL_ERR_ASN1_BUF_TOO_SMALL );
 
     (*p) -= len;
-    mpi_write_binary( X, *p, len );
+    MPI_CHK( mpi_write_binary( X, *p, len ) );
 
     // DER format assumes 2s complement for numbers, so the leftmost bit
     // should be 0 for positive numbers and 1 for negative numbers.
@@ -126,7 +126,10 @@
     ASN1_CHK_ADD( len, asn1_write_len( p, start, len ) );
     ASN1_CHK_ADD( len, asn1_write_tag( p, start, ASN1_INTEGER ) );
 
-    return( (int) len );
+    ret = (int) len;
+
+cleanup:
+    return( ret );
 }
 #endif /* POLARSSL_BIGNUM_C */
 
diff --git a/library/dhm.c b/library/dhm.c
index 406404a..635e63e 100644
--- a/library/dhm.c
+++ b/library/dhm.c
@@ -92,8 +92,9 @@
     int ret = POLARSSL_ERR_DHM_BAD_INPUT_DATA;
 
     mpi_init( &L ); mpi_init( &U );
-    mpi_lset( &L, 2 );
-    mpi_sub_int( &U, P, 2 );
+
+    MPI_CHK( mpi_lset( &L, 2 ) );
+    MPI_CHK( mpi_sub_int( &U, P, 2 ) );
 
     if( mpi_cmp_mpi( param, &L ) >= 0 &&
         mpi_cmp_mpi( param, &U ) <= 0 )
@@ -101,8 +102,8 @@
         ret = 0;
     }
 
+cleanup:
     mpi_free( &L ); mpi_free( &U );
-
     return( ret );
 }
 
@@ -153,7 +154,7 @@
         mpi_fill_random( &ctx->X, x_size, f_rng, p_rng );
 
         while( mpi_cmp_mpi( &ctx->X, &ctx->P ) >= 0 )
-            mpi_shift_r( &ctx->X, 1 );
+            MPI_CHK( mpi_shift_r( &ctx->X, 1 ) );
 
         if( count++ > 10 )
             return( POLARSSL_ERR_DHM_MAKE_PARAMS_FAILED );
@@ -239,7 +240,7 @@
         mpi_fill_random( &ctx->X, x_size, f_rng, p_rng );
 
         while( mpi_cmp_mpi( &ctx->X, &ctx->P ) >= 0 )
-            mpi_shift_r( &ctx->X, 1 );
+            MPI_CHK( mpi_shift_r( &ctx->X, 1 ) );
 
         if( count++ > 10 )
             return( POLARSSL_ERR_DHM_MAKE_PUBLIC_FAILED );
@@ -312,7 +313,7 @@
         mpi_fill_random( &ctx->Vi, mpi_size( &ctx->P ), f_rng, p_rng );
 
         while( mpi_cmp_mpi( &ctx->Vi, &ctx->P ) >= 0 )
-            mpi_shift_r( &ctx->Vi, 1 );
+            MPI_CHK( mpi_shift_r( &ctx->Vi, 1 ) );
 
         if( count++ > 10 )
             return( POLARSSL_ERR_MPI_NOT_ACCEPTABLE );
diff --git a/library/ecp.c b/library/ecp.c
index d742e81..4823804 100644
--- a/library/ecp.c
+++ b/library/ecp.c
@@ -1125,7 +1125,7 @@
         mpi_fill_random( &l, p_size, f_rng, p_rng );
 
         while( mpi_cmp_mpi( &l, &grp->P ) >= 0 )
-            mpi_shift_r( &l, 1 );
+            MPI_CHK( mpi_shift_r( &l, 1 ) );
 
         if( count++ > 10 )
             return( POLARSSL_ERR_ECP_RANDOM_FAILED );
@@ -1510,7 +1510,7 @@
         mpi_fill_random( &l, p_size, f_rng, p_rng );
 
         while( mpi_cmp_mpi( &l, &grp->P ) >= 0 )
-            mpi_shift_r( &l, 1 );
+            MPI_CHK( mpi_shift_r( &l, 1 ) );
 
         if( count++ > 10 )
             return( POLARSSL_ERR_ECP_RANDOM_FAILED );
@@ -1598,7 +1598,7 @@
     ecp_point_init( &RP ); mpi_init( &PX );
 
     /* Save PX and read from P before writing to R, in case P == R */
-    mpi_copy( &PX, &P->X );
+    MPI_CHK( mpi_copy( &PX, &P->X ) );
     MPI_CHK( ecp_copy( &RP, P ) );
 
     /* Set R to zero in modified x/z coordinates */
diff --git a/library/ecp_curves.c b/library/ecp_curves.c
index ae677c8..afb1dd7 100644
--- a/library/ecp_curves.c
+++ b/library/ecp_curves.c
@@ -1233,7 +1233,7 @@
     M.n++; /* Make room for multiplication by 19 */
 
     /* N = A0 */
-    mpi_set_bit( N, 255, 0 );
+    MPI_CHK( mpi_set_bit( N, 255, 0 ) );
     for( i = P255_WIDTH; i < N->n; i++ )
         N->p[i] = 0;
 
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