Ensure MD self_test ret codes are not hidden

Also fix a potential memory leak and an incorrect goto statement in
sha1.c self_test
diff --git a/library/ripemd160.c b/library/ripemd160.c
index 8bf988e..4e92bb7 100644
--- a/library/ripemd160.c
+++ b/library/ripemd160.c
@@ -464,7 +464,7 @@
  */
 int mbedtls_ripemd160_self_test( int verbose )
 {
-    int i, ret;
+    int i, ret = 0;
     unsigned char output[20];
 
     memset( output, 0, sizeof output );
@@ -481,7 +481,10 @@
             goto fail;
 
         if( memcmp( output, ripemd160_test_md[i], 20 ) != 0 )
+        {
+            ret = 1;
             goto fail;
+        }
 
         if( verbose != 0 )
             mbedtls_printf( "passed\n" );
@@ -496,7 +499,7 @@
     if( verbose != 0 )
         mbedtls_printf( "failed\n" );
 
-    return( 1 );
+    return( ret );
 }
 
 #endif /* MBEDTLS_SELF_TEST */