Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(54)

Unified Diff: src/tspi/tspi_seal.c

Issue 3581012: Upgrade from trousers 0.3.3 to 0.3.6 and from testsuite 0.2 to 0.3. (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/trousers.git
Patch Set: git cl push Created 10 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/tspi/tspi_ps.c ('k') | testsuite/tcg/Makefile » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/tspi/tspi_seal.c
diff --git a/src/tspi/tspi_seal.c b/src/tspi/tspi_seal.c
index 23350f7ad8e55871720ade35909f53ee4c4a5004..95250c6b94f1f60f7d3a18d60d25725fe4de8d92 100644
--- a/src/tspi/tspi_seal.c
+++ b/src/tspi/tspi_seal.c
@@ -42,7 +42,7 @@ Tspi_Data_Seal(TSS_HENCDATA hEncData, /* in */
TCS_KEY_HANDLE tcsKeyHandle;
TSS_HCONTEXT tspContext;
Trspi_HashCtx hashCtx;
- BYTE *sealData;
+ BYTE *sealData = NULL;
struct authsess *xsap = NULL;
#ifdef TSS_BUILD_SEALX
UINT32 protectMode;
@@ -91,13 +91,12 @@ Tspi_Data_Seal(TSS_HENCDATA hEncData, /* in */
if ((result = authsess_xsap_init(tspContext, hEncKey, hEncData, TSS_AUTH_POLICY_REQUIRED,
sealOrdinal, TPM_ET_KEYHANDLE, &xsap)))
- return result;
+ goto error;
#ifdef TSS_BUILD_SEALX
if (sealOrdinal == TPM_ORD_Seal)
sealData = rgbDataToSeal;
else {
- sealData = NULL;
if ((sealData = (BYTE *)calloc(1, ulDataLength)) == NULL) {
LogError("malloc of %u bytes failed", ulDataLength);
result = TSPERR(TSS_E_OUTOFMEMORY);
@@ -128,8 +127,6 @@ Tspi_Data_Seal(TSS_HENCDATA hEncData, /* in */
result |= Trspi_Hash_UINT32(&hashCtx, ulDataLength);
result |= Trspi_HashUpdate(&hashCtx, ulDataLength, sealData);
if ((result |= Trspi_HashFinal(&hashCtx, digest.digest))) {
- if (sealData != rgbDataToSeal)
- free(sealData);
goto error;
}
@@ -141,16 +138,15 @@ Tspi_Data_Seal(TSS_HENCDATA hEncData, /* in */
if ((result = TCS_API(tspContext)->Seal(tspContext, tcsKeyHandle, &xsap->encAuthUse,
pcrDataSize, pcrData, ulDataLength,
sealData, xsap->pAuth, &encDataSize,
- &encData)))
- return result;
+ &encData))) {
+ goto error;
+ }
} else if (sealOrdinal == TPM_ORD_Sealx) {
- result = TCS_API(tspContext)->Sealx(tspContext, tcsKeyHandle, &xsap->encAuthUse,
+ if ((result = TCS_API(tspContext)->Sealx(tspContext, tcsKeyHandle, &xsap->encAuthUse,
pcrDataSize, pcrData, ulDataLength, sealData,
- xsap->pAuth, &encDataSize, &encData);
- free(sealData);
-
- if (result != TSS_SUCCESS)
+ xsap->pAuth, &encDataSize, &encData))) {
goto error;
+ }
} else {
result = TSPERR(TSS_E_INTERNAL_ERROR);
goto error;
@@ -183,7 +179,8 @@ error:
authsess_free(xsap);
free(encData);
free(pcrData);
-
+ if (sealData != rgbDataToSeal)
+ free(sealData);
return result;
}
« no previous file with comments | « src/tspi/tspi_ps.c ('k') | testsuite/tcg/Makefile » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698