ShellPkg/Debug1CommandsLib: Fix bugs in func DisplaySysEventLogData
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1498 This patch fix following bugs in func DisplaySysEventLogData: 1. Log increment (Log = (LOG_RECORD_FORMAT *) (LogData + Offset);) should happened in the end of while loop, not in the very beginning. 2. DisplaySELTypes function should be used in while loop instead of DisplaySELVarDataFormatType. Cc: Jaben Carsey <jaben.carsey@intel.com> Cc: Ray Ni <ray.ni@intel.com> Cc: Zhichao Gao <zhichao.gao@intel.com> Signed-off-by: Dandan Bi <dandan.bi@intel.com> Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
This commit is contained in:
@ -1,7 +1,7 @@
|
|||||||
/** @file
|
/** @file
|
||||||
Module for clarifying the content of the smbios structure element info.
|
Module for clarifying the content of the smbios structure element info.
|
||||||
|
|
||||||
Copyright (c) 2005 - 2011, Intel Corporation. All rights reserved. <BR>
|
Copyright (c) 2005 - 2019, Intel Corporation. All rights reserved. <BR>
|
||||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
|
|
||||||
**/
|
**/
|
||||||
@ -347,16 +347,12 @@ DisplaySysEventLogData (
|
|||||||
Offset = 0;
|
Offset = 0;
|
||||||
Log = (LOG_RECORD_FORMAT *) LogData;
|
Log = (LOG_RECORD_FORMAT *) LogData;
|
||||||
while (Log != NULL && Log->Type != END_OF_LOG && Offset < LogAreaLength) {
|
while (Log != NULL && Log->Type != END_OF_LOG && Offset < LogAreaLength) {
|
||||||
//
|
|
||||||
// Get a Event Log Record
|
|
||||||
//
|
|
||||||
Log = (LOG_RECORD_FORMAT *) (LogData + Offset);
|
|
||||||
|
|
||||||
if (Log != NULL) {
|
if (Log != NULL) {
|
||||||
//
|
//
|
||||||
// Display Event Log Record Information
|
// Display Event Log Record Information
|
||||||
//
|
//
|
||||||
DisplaySELVarDataFormatType (Log->Type, SHOW_DETAIL);
|
DisplaySELTypes (Log->Type, SHOW_DETAIL);
|
||||||
DisplaySELLogHeaderLen (Log->Length, SHOW_DETAIL);
|
DisplaySELLogHeaderLen (Log->Length, SHOW_DETAIL);
|
||||||
|
|
||||||
Offset += Log->Length;
|
Offset += Log->Length;
|
||||||
@ -373,6 +369,10 @@ DisplaySysEventLogData (
|
|||||||
Print (L"20");
|
Print (L"20");
|
||||||
} else {
|
} else {
|
||||||
ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_ERROR), gShellDebug1HiiHandle);
|
ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_ERROR), gShellDebug1HiiHandle);
|
||||||
|
//
|
||||||
|
// Get a Event Log Record
|
||||||
|
//
|
||||||
|
Log = (LOG_RECORD_FORMAT *) (LogData + Offset);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -391,11 +391,19 @@ DisplaySysEventLogData (
|
|||||||
// Display Variable Data Format
|
// Display Variable Data Format
|
||||||
//
|
//
|
||||||
if (Log->Length <= (sizeof (LOG_RECORD_FORMAT) - 1)) {
|
if (Log->Length <= (sizeof (LOG_RECORD_FORMAT) - 1)) {
|
||||||
|
//
|
||||||
|
// Get a Event Log Record
|
||||||
|
//
|
||||||
|
Log = (LOG_RECORD_FORMAT *) (LogData + Offset);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
ElVdfType = Log->LogVariableData[0];
|
ElVdfType = Log->LogVariableData[0];
|
||||||
DisplayElVdfInfo (ElVdfType, Log->LogVariableData);
|
DisplayElVdfInfo (ElVdfType, Log->LogVariableData);
|
||||||
|
//
|
||||||
|
// Get a Event Log Record
|
||||||
|
//
|
||||||
|
Log = (LOG_RECORD_FORMAT *) (LogData + Offset);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user