libFLAC/md5.c: Clean up allocation

Make sure ctx->capacity gets updated correctly when safe_realloc()
fails.

Patch-from:  lvqcl <lvqcl.mail@gmail.com>
diff --git a/src/libFLAC/md5.c b/src/libFLAC/md5.c
index 05f824d..e9013a9 100644
--- a/src/libFLAC/md5.c
+++ b/src/libFLAC/md5.c
@@ -499,13 +499,12 @@
 		return false;
 
 	if (ctx->capacity < bytes_needed) {
-		FLAC__byte *tmp = safe_realloc_(ctx->internal_buf.p8, bytes_needed);
-		if (0 == tmp) {
-			if (0 == (ctx->internal_buf.p8 = safe_malloc_(bytes_needed)))
+		if (0 == (ctx->internal_buf.p8 = safe_realloc_(ctx->internal_buf.p8, bytes_needed))) {
+			if (0 == (ctx->internal_buf.p8 = safe_malloc_(bytes_needed))) {
+				ctx->capacity = 0;
 				return false;
+			}
 		}
-		else
-			ctx->internal_buf.p8 = tmp;
 		ctx->capacity = bytes_needed;
 	}