diff --git a/library/md2.c b/library/md2.c
index a5d768b..8d887a1 100644
--- a/library/md2.c
+++ b/library/md2.c
@@ -229,18 +229,18 @@
     mbedtls_md2_init( &ctx );
 
     if( ( ret = mbedtls_md2_starts_ext( &ctx ) ) != 0 )
-        return( ret );
+        goto exit;
 
     if( ( ret = mbedtls_md2_update_ext( &ctx, input, ilen ) ) != 0 )
-        return( ret );
+        goto exit;
 
     if( ( ret = mbedtls_md2_finish_ext( &ctx, output ) ) != 0 )
-        return( ret );
+        goto exit;
 
-
+exit:
     mbedtls_md2_free( &ctx );
 
-    return( 0 );
+    return( ret );
 }
 
 #if defined(MBEDTLS_SELF_TEST)
diff --git a/library/md4.c b/library/md4.c
index da4df7b..1121fd1 100644
--- a/library/md4.c
+++ b/library/md4.c
@@ -333,17 +333,18 @@
     mbedtls_md4_init( &ctx );
 
     if( ( ret = mbedtls_md4_starts_ext( &ctx ) ) != 0 )
-        return( ret );
+        goto exit;
 
     if( ( ret = mbedtls_md4_update_ext( &ctx, input, ilen ) ) != 0 )
-        return( ret );
+        goto exit;
 
     if( ( ret = mbedtls_md4_finish_ext( &ctx, output ) ) != 0 )
-        return( ret );
+        goto exit;
 
+exit:
     mbedtls_md4_free( &ctx );
 
-    return( 0 );
+    return( ret );
 }
 
 #if defined(MBEDTLS_SELF_TEST)
diff --git a/library/md5.c b/library/md5.c
index 8150f94..93f6434 100644
--- a/library/md5.c
+++ b/library/md5.c
@@ -347,17 +347,18 @@
     mbedtls_md5_init( &ctx );
 
     if( ( ret = mbedtls_md5_starts_ext( &ctx ) ) != 0 )
-            return( ret );
+        goto exit;
 
     if( ( ret = mbedtls_md5_update_ext( &ctx, input, ilen ) ) != 0 )
-            return( ret );
+        goto exit;
 
     if( ( ret = mbedtls_md5_finish_ext( &ctx, output ) ) != 0 )
-            return( ret );
+        goto exit;
 
+exit:
     mbedtls_md5_free( &ctx );
 
-    return( 0 );
+    return( ret );
 }
 
 #if defined(MBEDTLS_SELF_TEST)
diff --git a/library/ripemd160.c b/library/ripemd160.c
index 4e92bb7..0fc12a1 100644
--- a/library/ripemd160.c
+++ b/library/ripemd160.c
@@ -406,17 +406,18 @@
     mbedtls_ripemd160_init( &ctx );
 
     if( ( ret = mbedtls_ripemd160_starts_ext( &ctx ) ) != 0 )
-            return( ret );
+        goto exit;
 
     if( ( ret = mbedtls_ripemd160_update_ext( &ctx, input, ilen ) ) != 0 )
-            return( ret );
+        goto exit;
 
     if( ( ret = mbedtls_ripemd160_finish_ext( &ctx, output ) ) != 0 )
-            return( ret );
+        goto exit;
 
+exit:
     mbedtls_ripemd160_free( &ctx );
 
-    return( 0 );
+    return( ret );
 }
 
 #if defined(MBEDTLS_SELF_TEST)
diff --git a/library/sha1.c b/library/sha1.c
index 64b70f0..42f3d6c 100644
--- a/library/sha1.c
+++ b/library/sha1.c
@@ -380,17 +380,18 @@
     mbedtls_sha1_init( &ctx );
 
     if( ( ret = mbedtls_sha1_starts_ext( &ctx ) ) != 0 )
-        return( ret );
+        goto exit;
 
     if( ( ret = mbedtls_sha1_update_ext( &ctx, input, ilen ) ) != 0 )
-        return( ret );
+        goto exit;
 
     if( ( ret = mbedtls_sha1_finish_ext( &ctx, output ) ) != 0 )
-        return( ret );
+        goto exit;
 
+exit:
     mbedtls_sha1_free( &ctx );
 
-    return( 0 );
+    return( ret );
 }
 
 #if defined(MBEDTLS_SELF_TEST)
diff --git a/library/sha256.c b/library/sha256.c
index 16a2f0b..fb03cd1 100644
--- a/library/sha256.c
+++ b/library/sha256.c
@@ -355,17 +355,18 @@
     mbedtls_sha256_init( &ctx );
 
     if( ( ret = mbedtls_sha256_starts_ext( &ctx, is224 ) ) != 0 )
-            return( ret );
+        goto exit;
 
     if( ( ret = mbedtls_sha256_update_ext( &ctx, input, ilen ) ) != 0 )
-            return( ret );
+        goto exit;
 
     if( ( ret = mbedtls_sha256_finish_ext( &ctx, output ) ) != 0 )
-            return( ret );
+        goto exit;
 
+exit:
     mbedtls_sha256_free( &ctx );
 
-    return( 0 );
+    return( ret );
 }
 
 #if defined(MBEDTLS_SELF_TEST)
diff --git a/library/sha512.c b/library/sha512.c
index 76d21dd..b1947f1 100644
--- a/library/sha512.c
+++ b/library/sha512.c
@@ -391,17 +391,18 @@
     mbedtls_sha512_init( &ctx );
 
     if( ( ret = mbedtls_sha512_starts_ext( &ctx, is384 ) ) != 0 )
-            return( ret );
+        goto exit;
 
     if( ( ret = mbedtls_sha512_update_ext( &ctx, input, ilen ) ) != 0 )
-            return( ret );
+        goto exit;
 
     if( ( ret = mbedtls_sha512_finish_ext( &ctx, output ) ) != 0 )
-            return( ret );
+        goto exit;
 
+exit:
     mbedtls_sha512_free( &ctx );
 
-    return( 0 );
+    return( ret );
 }
 
 #if defined(MBEDTLS_SELF_TEST)
