32 lines
1.3 KiB
Diff
32 lines
1.3 KiB
Diff
From 58df8d745c6516818ba6ebfa8fe826702c1621a0 Mon Sep 17 00:00:00 2001
|
|
From: Chris Coulson <chris.coulson@canonical.com>
|
|
Date: Thu, 26 Sep 2019 20:01:01 +0100
|
|
Subject: [PATCH 41/62] tpm: Don't log duplicate identical events
|
|
|
|
According to the comment in tpm_measure_variable ("Don't measure something that we've already measured"), shim
|
|
shouldn't measure duplicate events if they are identical, which also aligns with section 2.3.4.8 of the TCG PC
|
|
Client Platform Firmware Profile Specification ("If it has been measured previously, it MUST NOT be measured
|
|
again"). This is currently broken because tpm_data_measured() uses the return value of CompareGuid() incorrectly.
|
|
|
|
Upstream-commit-id: 103adc89ce5
|
|
---
|
|
tpm.c | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/tpm.c b/tpm.c
|
|
index c0617bb479e..196b93c30f6 100644
|
|
--- a/tpm.c
|
|
+++ b/tpm.c
|
|
@@ -241,7 +241,7 @@ static BOOLEAN tpm_data_measured(CHAR16 *VarName, EFI_GUID VendorGuid, UINTN Var
|
|
|
|
for (i=0; i<measuredcount; i++) {
|
|
if ((StrCmp (VarName, measureddata[i].VariableName) == 0) &&
|
|
- (CompareGuid (&VendorGuid, measureddata[i].VendorGuid)) &&
|
|
+ (CompareGuid (&VendorGuid, measureddata[i].VendorGuid) == 0) &&
|
|
(VarSize == measureddata[i].Size) &&
|
|
(CompareMem (VarData, measureddata[i].Data, VarSize) == 0)) {
|
|
return TRUE;
|
|
--
|
|
2.26.2
|
|
|