[edk2-devel] [patch] ShellPkg/Debug1CommandsLib: Fix bugs in func DisplaySysEventLogData

Dandan Bi dandan.bi at intel.com
Tue May 28 02:25:09 UTC 2019


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 at intel.com>
Cc: Ray Ni <ray.ni at intel.com>
Cc: Zhichao Gao <zhichao.gao at intel.com>
Signed-off-by: Dandan Bi <dandan.bi at intel.com>
---
 .../SmbiosView/EventLogInfo.c                 | 20 +++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/EventLogInfo.c b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/EventLogInfo.c
index b8adf438d3..984c178890 100644
--- a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/EventLogInfo.c
+++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/EventLogInfo.c
@@ -1,9 +1,9 @@
 /** @file
   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
 
 **/
 
 #include "UefiShellDebug1CommandsLib.h"
@@ -345,20 +345,16 @@ DisplaySysEventLogData (
   // Print Log info
   //
   Offset  = 0;
   Log     = (LOG_RECORD_FORMAT *) LogData;
   while (Log != NULL && Log->Type != END_OF_LOG && Offset < LogAreaLength) {
-    //
-    // Get a Event Log Record
-    //
-    Log = (LOG_RECORD_FORMAT *) (LogData + Offset);
 
     if (Log != NULL) {
       //
       // Display Event Log Record Information
       //
-      DisplaySELVarDataFormatType (Log->Type, SHOW_DETAIL);
+      DisplaySELTypes (Log->Type, SHOW_DETAIL);
       DisplaySELLogHeaderLen (Log->Length, SHOW_DETAIL);
 
       Offset += Log->Length;
       //
       // Display Log Header Date/Time Fields
@@ -371,10 +367,14 @@ DisplaySysEventLogData (
         Print (L"19");
       } else if (Log != NULL && Log->Year <= 79) {
         Print (L"20");
       } else {
         ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_ERROR), gShellDebug1HiiHandle);
+        //
+        // Get a Event Log Record
+        //
+        Log = (LOG_RECORD_FORMAT *) (LogData + Offset);
         continue;
       }
 
       ShellPrintHiiEx(-1,-1,NULL,
         STRING_TOKEN (STR_SMBIOSVIEW_EVENTLOGINFO_TIME_SIX_VARS),
@@ -389,13 +389,21 @@ DisplaySysEventLogData (
 
       //
       // Display Variable Data Format
       //
       if (Log->Length <= (sizeof (LOG_RECORD_FORMAT) - 1)) {
+        //
+        // Get a Event Log Record
+        //
+        Log = (LOG_RECORD_FORMAT *) (LogData + Offset);
         continue;
       }
 
       ElVdfType = Log->LogVariableData[0];
       DisplayElVdfInfo (ElVdfType, Log->LogVariableData);
+      //
+      // Get a Event Log Record
+      //
+      Log = (LOG_RECORD_FORMAT *) (LogData + Offset);
     }
   }
 }
-- 
2.18.0.windows.1


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#41441): https://edk2.groups.io/g/devel/message/41441
Mute This Topic: https://groups.io/mt/31816865/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-




More information about the edk2-devel-archive mailing list