summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--SecurityPkg/Tcg/TcgDxe/TcgDxe.c43
-rw-r--r--SecurityPkg/Tcg/TrEEDxe/TrEEDxe.c33
2 files changed, 51 insertions, 25 deletions
diff --git a/SecurityPkg/Tcg/TcgDxe/TcgDxe.c b/SecurityPkg/Tcg/TcgDxe/TcgDxe.c
index df9700a4d..bf9c7521a 100644
--- a/SecurityPkg/Tcg/TcgDxe/TcgDxe.c
+++ b/SecurityPkg/Tcg/TcgDxe/TcgDxe.c
@@ -505,7 +505,10 @@ TcgDxeHashLogExtendEventI (
(UINTN) HashDataLen,
&NewEventHdr->Digest
);
- ASSERT_EFI_ERROR (Status);
+ if (EFI_ERROR(Status)) {
+ DEBUG ((DEBUG_ERROR, "TpmCommHashAll Failed. %x\n", Status));
+ return Status;
+ }
}
Status = TpmCommExtend (
@@ -745,9 +748,7 @@ MeasureHandoffTables (
(VOID **) &SmbiosTable
);
- if (!EFI_ERROR (Status)) {
- ASSERT (SmbiosTable != NULL);
-
+ if (!EFI_ERROR (Status) && SmbiosTable != NULL) {
TcgEvent.PCRIndex = 1;
TcgEvent.EventType = EV_EFI_HANDOFF_TABLES;
TcgEvent.EventSize = sizeof (HandoffTables);
@@ -1023,9 +1024,11 @@ MeasureAllBootVariables (
if (Status == EFI_NOT_FOUND) {
return EFI_SUCCESS;
}
- ASSERT (BootOrder != NULL);
if (EFI_ERROR (Status)) {
+ //
+ // BootOrder can't be NULL if status is not EFI_NOT_FOUND
+ //
FreePool (BootOrder);
return Status;
}
@@ -1091,14 +1094,18 @@ OnReadyToBoot (
Status = TcgMeasureAction (
EFI_CALLING_EFI_APPLICATION
);
- ASSERT_EFI_ERROR (Status);
+ if (EFI_ERROR (Status)) {
+ DEBUG ((EFI_D_ERROR, "%s not Measured. Error!\n", EFI_CALLING_EFI_APPLICATION));
+ }
//
// 2. Draw a line between pre-boot env and entering post-boot env.
//
for (PcrIndex = 0; PcrIndex < 8; PcrIndex++) {
Status = MeasureSeparatorEvent (PcrIndex);
- ASSERT_EFI_ERROR (Status);
+ if (EFI_ERROR (Status)) {
+ DEBUG ((EFI_D_ERROR, "Seperator Event not Measured. Error!\n"));
+ }
}
//
@@ -1119,7 +1126,9 @@ OnReadyToBoot (
Status = TcgMeasureAction (
EFI_RETURNING_FROM_EFI_APPLICATOIN
);
- ASSERT_EFI_ERROR (Status);
+ if (EFI_ERROR (Status)) {
+ DEBUG ((EFI_D_ERROR, "%s not Measured. Error!\n", EFI_RETURNING_FROM_EFI_APPLICATOIN));
+ }
}
DEBUG ((EFI_D_INFO, "TPM TcgDxe Measure Data when ReadyToBoot\n"));
@@ -1198,7 +1207,10 @@ InstallAcpiTable (
&TableKey
);
}
- ASSERT_EFI_ERROR (Status);
+
+ if (EFI_ERROR (Status)) {
+ DEBUG((EFI_D_ERROR, "Tcg Acpi Table installation failure"));
+ }
}
/**
@@ -1225,7 +1237,9 @@ OnExitBootServices (
Status = TcgMeasureAction (
EFI_EXIT_BOOT_SERVICES_INVOCATION
);
- ASSERT_EFI_ERROR (Status);
+ if (EFI_ERROR (Status)) {
+ DEBUG ((EFI_D_ERROR, "%s not Measured. Error!\n", EFI_EXIT_BOOT_SERVICES_INVOCATION));
+ }
//
// Measure success of ExitBootServices
@@ -1233,7 +1247,9 @@ OnExitBootServices (
Status = TcgMeasureAction (
EFI_EXIT_BOOT_SERVICES_SUCCEEDED
);
- ASSERT_EFI_ERROR (Status);
+ if (EFI_ERROR (Status)){
+ DEBUG ((EFI_D_ERROR, "%s not Measured. Error!\n", EFI_EXIT_BOOT_SERVICES_SUCCEEDED));
+ }
}
/**
@@ -1260,8 +1276,9 @@ OnExitBootServicesFailed (
Status = TcgMeasureAction (
EFI_EXIT_BOOT_SERVICES_FAILED
);
- ASSERT_EFI_ERROR (Status);
-
+ if (EFI_ERROR (Status)){
+ DEBUG ((EFI_D_ERROR, "%s not Measured. Error!\n", EFI_EXIT_BOOT_SERVICES_FAILED));
+ }
}
/**
diff --git a/SecurityPkg/Tcg/TrEEDxe/TrEEDxe.c b/SecurityPkg/Tcg/TrEEDxe/TrEEDxe.c
index 09f8a364a..8db0fa0df 100644
--- a/SecurityPkg/Tcg/TrEEDxe/TrEEDxe.c
+++ b/SecurityPkg/Tcg/TrEEDxe/TrEEDxe.c
@@ -1109,9 +1109,7 @@ MeasureHandoffTables (
(VOID **) &SmbiosTable
);
- if (!EFI_ERROR (Status)) {
- ASSERT (SmbiosTable != NULL);
-
+ if (!EFI_ERROR (Status) && SmbiosTable != NULL) {
TcgEvent.PCRIndex = 1;
TcgEvent.EventType = EV_EFI_HANDOFF_TABLES;
TcgEvent.EventSize = sizeof (HandoffTables);
@@ -1225,8 +1223,6 @@ MeasureVariable (
UINTN VarNameLength;
EFI_VARIABLE_DATA_TREE *VarLog;
- ASSERT ((VarSize == 0 && VarData == NULL) || (VarSize != 0 && VarData != NULL));
-
DEBUG ((EFI_D_ERROR, "TrEEDxe: MeasureVariable (Pcr - %x, EventType - %x, ", (UINTN)PCRIndex, (UINTN)EventType));
DEBUG ((EFI_D_ERROR, "VariableName - %s, VendorGuid - %g)\n", VarName, VendorGuid));
@@ -1318,10 +1314,12 @@ ReadAndMeasureVariable (
*VarSize = 0;
}
} else {
+ //
+ // if status error, VarData is freed and set NULL by GetVariable2
+ //
if (EFI_ERROR (Status)) {
- return Status;
+ return EFI_NOT_FOUND;
}
- ASSERT (*VarData != NULL);
}
Status = MeasureVariable (
@@ -1428,9 +1426,11 @@ MeasureAllBootVariables (
if (Status == EFI_NOT_FOUND) {
return EFI_SUCCESS;
}
- ASSERT (BootOrder != NULL);
if (EFI_ERROR (Status)) {
+ //
+ // BootOrder can't be NULL if status is not EFI_NOT_FOUND
+ //
FreePool (BootOrder);
return Status;
}
@@ -1721,7 +1721,10 @@ InstallAcpiTable (
&TableKey
);
}
- ASSERT_EFI_ERROR (Status);
+
+ if (EFI_ERROR (Status)) {
+ DEBUG((EFI_D_ERROR, "Tcg Acpi Table installation failure"));
+ }
}
/**
@@ -1748,7 +1751,9 @@ OnExitBootServices (
Status = TcgMeasureAction (
EFI_EXIT_BOOT_SERVICES_INVOCATION
);
- ASSERT_EFI_ERROR (Status);
+ if (EFI_ERROR (Status)) {
+ DEBUG ((EFI_D_ERROR, "%s not Measured. Error!\n", EFI_EXIT_BOOT_SERVICES_INVOCATION));
+ }
//
// Measure success of ExitBootServices
@@ -1756,7 +1761,9 @@ OnExitBootServices (
Status = TcgMeasureAction (
EFI_EXIT_BOOT_SERVICES_SUCCEEDED
);
- ASSERT_EFI_ERROR (Status);
+ if (EFI_ERROR (Status)) {
+ DEBUG ((EFI_D_ERROR, "%s not Measured. Error!\n", EFI_EXIT_BOOT_SERVICES_SUCCEEDED));
+ }
}
/**
@@ -1783,7 +1790,9 @@ OnExitBootServicesFailed (
Status = TcgMeasureAction (
EFI_EXIT_BOOT_SERVICES_FAILED
);
- ASSERT_EFI_ERROR (Status);
+ if (EFI_ERROR (Status)) {
+ DEBUG ((EFI_D_ERROR, "%s not Measured. Error!\n", EFI_EXIT_BOOT_SERVICES_FAILED));
+ }
}