Index: src/tcs/tcs_pbg.c |
diff --git a/src/tcs/tcs_pbg.c b/src/tcs/tcs_pbg.c |
index c70f73193d69d2c36aaf4845f2834a714349fcf5..5eaa6f7295146bf53396c2b44a2bf650a8c663e8 100644 |
--- a/src/tcs/tcs_pbg.c |
+++ b/src/tcs/tcs_pbg.c |
@@ -468,6 +468,7 @@ tpm_rsp_parse(TPM_COMMAND_CODE ordinal, BYTE *b, UINT32 len, ...) |
UnloadBlob_UINT32(&offset1, len2, b); |
if ((*blob2 = malloc(*len2)) == NULL) { |
+ free(*blob1); |
LogError("malloc of %u bytes failed", *len2); |
return TCSERR(TSS_E_OUTOFMEMORY); |
} |
@@ -549,6 +550,7 @@ tpm_rsp_parse(TPM_COMMAND_CODE ordinal, BYTE *b, UINT32 len, ...) |
UnloadBlob_UINT32(&offset2, len2, b); |
if ((*blob2 = malloc(*len2)) == NULL) { |
+ free(*blob1); |
LogError("malloc of %u bytes failed", *len2); |
return TCSERR(TSS_E_OUTOFMEMORY); |
} |