libpts: Fix PCR read, avoid cast of a pointer to different sized integer

This commit is contained in:
Martin Willi
2014-06-04 15:53:07 +02:00
parent c9891716b8
commit 2877355408
+4 -3
View File
@@ -623,7 +623,8 @@ METHOD(pts_t, read_pcr, bool,
TSS_HCONTEXT hContext; TSS_HCONTEXT hContext;
TSS_HTPM hTPM; TSS_HTPM hTPM;
TSS_RESULT result; TSS_RESULT result;
chunk_t rgbPcrValue; BYTE *buf;
UINT32 len;
bool success = FALSE; bool success = FALSE;
@@ -644,12 +645,12 @@ METHOD(pts_t, read_pcr, bool,
{ {
goto err; goto err;
} }
result = Tspi_TPM_PcrRead(hTPM, pcr_num, (UINT32*)&rgbPcrValue.len, &rgbPcrValue.ptr); result = Tspi_TPM_PcrRead(hTPM, pcr_num, &len, &buf);
if (result != TSS_SUCCESS) if (result != TSS_SUCCESS)
{ {
goto err; goto err;
} }
*pcr_value = chunk_clone(rgbPcrValue); *pcr_value = chunk_clone(chunk_create(buf, len));
DBG3(DBG_PTS, "PCR %d value:%B", pcr_num, pcr_value); DBG3(DBG_PTS, "PCR %d value:%B", pcr_num, pcr_value);
success = TRUE; success = TRUE;