From 3b6b1105cf31a3547d6157e912d72ec9ddc69a4b Mon Sep 17 00:00:00 2001
From: Laszlo Ersek <lersek@redhat.com>
Date: Thu, 21 Jan 2016 18:40:13 +0000
Subject: [PATCH] ShellPkg: BcfgDisplayDump(): address FilePathListLength by
 name

The Buffer variable points at the beginning of an EFI_LOAD_OPTION
structure. We might as well address the "FilePathListLength" member by
name, rather than with *(UINT16*)(Buffer+4).

This patch is not supposed to change behavior.

Cc: Jaben Carsey <jaben.carsey@intel.com>
Cc: Ryan Harkin <ryan.harkin@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19711 6f19259b-4bc3-4df7-8a09-765794883524
---
 .../UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.c b/ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.c
index 9955c9e640..b08aac1bd8 100644
--- a/ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.c
+++ b/ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.c
@@ -1108,11 +1108,12 @@ BcfgDisplayDump(
       ++Errors;
       goto Cleanup;
     }
+    LoadOption = (EFI_LOAD_OPTION *)Buffer;
 
-    if ((*(UINT16*)(Buffer+4)) != 0) {
-      DevPath = AllocateZeroPool(*(UINT16*)(Buffer+4));
+    if (LoadOption->FilePathListLength != 0) {
+      DevPath = AllocateZeroPool(LoadOption->FilePathListLength);
       if (DevPath != NULL) {
-        CopyMem(DevPath, Buffer+6+StrSize((CHAR16*)(Buffer+6)), *(UINT16*)(Buffer+4));
+        CopyMem(DevPath, Buffer+6+StrSize((CHAR16*)(Buffer+6)), LoadOption->FilePathListLength);
         DevPathString = ConvertDevicePathToText(DevPath, TRUE, FALSE);
       }
     }
@@ -1126,9 +1127,9 @@ BcfgDisplayDump(
       VariableName,
       (CHAR16*)(Buffer+6),
       DevPathString,
-      (StrSize((CHAR16*)(Buffer+6)) + *(UINT16*)(Buffer+4) + 6) <= BufferSize?L'N':L'Y');
+      (StrSize((CHAR16*)(Buffer+6)) + LoadOption->FilePathListLength + 6) <= BufferSize?L'N':L'Y');
     if (VerboseOutput) {
-      for (LoopVar2 = (StrSize((CHAR16*)(Buffer+6)) + *(UINT16*)(Buffer+4) + 6);LoopVar2<BufferSize;LoopVar2++){
+      for (LoopVar2 = (StrSize((CHAR16*)(Buffer+6)) + LoadOption->FilePathListLength + 6);LoopVar2<BufferSize;LoopVar2++){
         ShellPrintEx(
           -1,
           -1,