]> git.proxmox.com Git - efi-boot-shim.git/commitdiff
tpm: Don't log duplicate identical events
authorChris Coulson <chris.coulson@canonical.com>
Thu, 26 Sep 2019 19:01:01 +0000 (20:01 +0100)
committerPeter Jones <pjones@redhat.com>
Fri, 24 Jul 2020 00:53:24 +0000 (20:53 -0400)
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

diff --git a/tpm.c b/tpm.c
index c0617bb479eb7d188556e7b3effe6a88e5f127aa..196b93c30f626dfb3882257dbea2a3875e87d6ed 100644 (file)
--- 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;