Add check for a NULL Data parameter in SecPeiReportStatusCode(). The Report Status Code Library functions will ASSERT() is Data is NULL.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@410 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
mdkinney 2006-06-03 21:54:37 +00:00
parent 7793bfc31e
commit 2180250558
1 changed files with 13 additions and 7 deletions

View File

@ -473,24 +473,30 @@ Returns:
// The first 12 * UINT64 bytes of the string are really an // The first 12 * UINT64 bytes of the string are really an
// arguement stack to support varargs on the Format string. // arguement stack to support varargs on the Format string.
// //
if (Data != NULL) {
DebugInfo = (EFI_DEBUG_INFO *) (Data + 1); DebugInfo = (EFI_DEBUG_INFO *) (Data + 1);
Marker = (VA_LIST) (DebugInfo + 1); Marker = (VA_LIST) (DebugInfo + 1);
Format = (CHAR8 *) (((UINT64 *) Marker) + 12); Format = (CHAR8 *) (((UINT64 *) Marker) + 12);
AsciiVSPrint (PrintBuffer, BYTES_PER_RECORD, Format, Marker); AsciiVSPrint (PrintBuffer, BYTES_PER_RECORD, Format, Marker);
printf (PrintBuffer); printf (PrintBuffer);
} else {
printf ("DEBUG <null>\n");
}
} }
if (((CodeType & EFI_STATUS_CODE_TYPE_MASK) == EFI_ERROR_CODE) && if (((CodeType & EFI_STATUS_CODE_TYPE_MASK) == EFI_ERROR_CODE) &&
((CodeType & EFI_STATUS_CODE_SEVERITY_MASK) == EFI_ERROR_UNRECOVERED) ((CodeType & EFI_STATUS_CODE_SEVERITY_MASK) == EFI_ERROR_UNRECOVERED)
) { ) {
if (ReportStatusCodeExtractAssertInfo (CodeType, Value, Data, &Filename, &Description, &LineNumber)) { if (Data != NULL && ReportStatusCodeExtractAssertInfo (CodeType, Value, Data, &Filename, &Description, &LineNumber)) {
// //
// Support ASSERT () macro // Support ASSERT () macro
// //
printf ("ASSERT %s(%d): %s\n", Filename, LineNumber, Description); printf ("ASSERT %s(%d): %s\n", Filename, LineNumber, Description);
CpuBreakpoint (); } else {
printf ("ASSERT <null>\n");
} }
CpuBreakpoint ();
} }
return EFI_SUCCESS; return EFI_SUCCESS;