Fix possible memory leak in <MD>_ext()
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)