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;
}