public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH] ShellPkg/Pci.c: Update supported link speed to PCI4.0
@ 2019-07-15  7:30 Gao, Zhichao
  2019-07-15  7:30 ` [PATCH] ShellPkg/Type.c: Add value check before (LoopVar - 1) Gao, Zhichao
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Gao, Zhichao @ 2019-07-15  7:30 UTC (permalink / raw)
  To: devel; +Cc: Jaben Carsey, Ray Ni, Oleksiy

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1955

Refer PCI express base specification Reversion 4.0, Version
1.0, Table 7-32, Supported Link Speeds Vector bit 3 indicate
the speed 16 GT/s. Add it to shell command 'pci ...'.

Change the MaxLinkSpeed other values' result from 'Unknown'
to 'Reserved'.

Cc: Jaben Carsey <jaben.carsey@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Oleksiy <oleksiyy@ami.com>
Signed-off-by: Zhichao Gao <zhichao.gao@intel.com>
---
 ShellPkg/Library/UefiShellDebug1CommandsLib/Pci.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/Pci.c b/ShellPkg/Library/UefiShellDebug1CommandsLib/Pci.c
index ba9caa7743..b58ce3c2f0 100644
--- a/ShellPkg/Library/UefiShellDebug1CommandsLib/Pci.c
+++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/Pci.c
@@ -1,7 +1,7 @@
 /** @file
   Main file for Pci shell Debug1 function.
 
-  Copyright (c) 2005 - 2018, Intel Corporation. All rights reserved.<BR>
+  Copyright (c) 2005 - 2019, Intel Corporation. All rights reserved.<BR>
   (C) Copyright 2013-2015 Hewlett-Packard Development Company, L.P.<BR>
   (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>
   SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -4515,8 +4515,11 @@ ExplainPcieLinkCap (
     case 3:
       MaxLinkSpeed = L"8.0 GT/s";
       break;
+    case 4:
+      MaxLinkSpeed = L"16.0 GT/s";
+      break;
     default:
-      MaxLinkSpeed = L"Unknown";
+      MaxLinkSpeed = L"Reserved";
       break;
   }
   ShellPrintEx (-1, -1,
@@ -4672,6 +4675,9 @@ ExplainPcieLinkStatus (
     case 3:
       CurLinkSpeed = L"8.0 GT/s";
       break;
+    case 4:
+      CurLinkSpeed = L"16.0 GT/s";
+      break;
     default:
       CurLinkSpeed = L"Reserved";
       break;
-- 
2.21.0.windows.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH] ShellPkg/Type.c: Add value check before (LoopVar - 1)
  2019-07-15  7:30 [PATCH] ShellPkg/Pci.c: Update supported link speed to PCI4.0 Gao, Zhichao
@ 2019-07-15  7:30 ` Gao, Zhichao
  2019-07-15 13:09   ` [edk2-devel] " Jim Dailey
  2019-07-15 14:30   ` Carsey, Jaben
  2019-07-15  7:30 ` [PATCH] ShellPkg/UefiHandleParsingLib: Fix error allocate pool Gao, Zhichao
                   ` (2 subsequent siblings)
  3 siblings, 2 replies; 9+ messages in thread
From: Gao, Zhichao @ 2019-07-15  7:30 UTC (permalink / raw)
  To: devel; +Cc: Jaben Carsey, Ray Ni, Andrew Fish

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1964

If the file begin with single line Feed ('\n'), then
"AsciiChar == '\n' && ((CHAR8*)Buffer)[LoopVar-1] != '\r'"
would cause a underflow. Add this condition
"(AsciiChar == '\n' && LoopVar == 0)" before it to make sure
(LoopVar - 1) would never encounter a underflow.

Cc: Jaben Carsey <jaben.carsey@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Andrew Fish <afish@apple.com>
Signed-off-by: Zhichao Gao <zhichao.gao@intel.com>
---
 ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c b/ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c
index 4efc0a8e24..c1f670c713 100644
--- a/ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c
+++ b/ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c
@@ -78,12 +78,13 @@ TypeFileByHandle (
           // Allow Line Feed (LF) (0xA) & Carriage Return (CR) (0xD)
           // characters to be displayed as is.
           //
-          if (AsciiChar == '\n' && ((CHAR8*)Buffer)[LoopVar-1] != '\r') {
+          if ((AsciiChar == '\n' && LoopVar == 0) ||
+              (AsciiChar == '\n' && ((CHAR8*)Buffer)[LoopVar-1] != '\r')) {
             //
-            // In case Line Feed (0xA) is encountered & Carriage Return (0xD)
-            // was not the previous character, print CR and LF. This is because
-            // Shell 2.0 requires carriage return with line feed for displaying
-            // each new line from left.
+            // In case file begin with single line Feed or Line Feed (0xA) is
+            // encountered & Carriage Return (0xD) was not previous character,
+            // print CR and LF. This is because Shell 2.0 requires carriage
+            // return Swith line feed for displaying each new line from left.
             //
             ShellPrintEx (-1, -1, L"\r\n");
             continue;
-- 
2.21.0.windows.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH] ShellPkg/UefiHandleParsingLib: Fix error allocate pool
  2019-07-15  7:30 [PATCH] ShellPkg/Pci.c: Update supported link speed to PCI4.0 Gao, Zhichao
  2019-07-15  7:30 ` [PATCH] ShellPkg/Type.c: Add value check before (LoopVar - 1) Gao, Zhichao
@ 2019-07-15  7:30 ` Gao, Zhichao
  2019-07-15  7:30 ` [PATCH] ShellPkg/UefiShellDriver1CommandsLib: Make array big enough Gao, Zhichao
       [not found] ` <15B1842A1397F2E7.11928@groups.io>
  3 siblings, 0 replies; 9+ messages in thread
From: Gao, Zhichao @ 2019-07-15  7:30 UTC (permalink / raw)
  To: devel; +Cc: Jaben Carsey, Ray Ni, Andrew Fish

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1965

For function InsertNewGuidNameMapping, it rellocate the
mGuidList with new size
"mGuidListCount+1 * sizeof(GUID_INFO_BLOCK)". That isn't
its purpose and would cause a overflow operation in
"mGuidList[mGuidListCount - 1].xxx = xxx". Its purpose
is to increase 1 block size of mGuidList. Change it to
"(mGuidListCount + 1) * sizeof (GUID_INFO_BLOCK)".

Adjust the coding style of this function.

Cc: Jaben Carsey <jaben.carsey@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Andrew Fish <afish@apple.com>
Signed-off-by: Zhichao Gao <zhichao.gao@intel.com>
---
 .../UefiHandleParsingLib/UefiHandleParsingLib.c      | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c b/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c
index f179c41092..430c0ee70b 100644
--- a/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c
+++ b/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c
@@ -2462,17 +2462,21 @@ InsertNewGuidNameMapping(
   IN CONST DUMP_PROTOCOL_INFO DumpFunc OPTIONAL
   )
 {
-  ASSERT(Guid   != NULL);
-  ASSERT(NameID != 0);
+  ASSERT (Guid   != NULL);
+  ASSERT (NameID != 0);
 
-  mGuidList = ReallocatePool(mGuidListCount * sizeof(GUID_INFO_BLOCK), mGuidListCount+1 * sizeof(GUID_INFO_BLOCK), mGuidList);
+  mGuidList = ReallocatePool (
+                mGuidListCount * sizeof (GUID_INFO_BLOCK),
+                (mGuidListCount + 1) * sizeof (GUID_INFO_BLOCK),
+                mGuidList
+                );
   if (mGuidList == NULL) {
     mGuidListCount = 0;
     return (EFI_OUT_OF_RESOURCES);
   }
   mGuidListCount++;
 
-  mGuidList[mGuidListCount - 1].GuidId   = AllocateCopyPool(sizeof(EFI_GUID), Guid);
+  mGuidList[mGuidListCount - 1].GuidId   = AllocateCopyPool (sizeof (EFI_GUID), Guid);
   mGuidList[mGuidListCount - 1].StringId = NameID;
   mGuidList[mGuidListCount - 1].DumpInfo = DumpFunc;
 
-- 
2.21.0.windows.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH] ShellPkg/UefiShellDriver1CommandsLib: Make array big enough
  2019-07-15  7:30 [PATCH] ShellPkg/Pci.c: Update supported link speed to PCI4.0 Gao, Zhichao
  2019-07-15  7:30 ` [PATCH] ShellPkg/Type.c: Add value check before (LoopVar - 1) Gao, Zhichao
  2019-07-15  7:30 ` [PATCH] ShellPkg/UefiHandleParsingLib: Fix error allocate pool Gao, Zhichao
@ 2019-07-15  7:30 ` Gao, Zhichao
       [not found] ` <15B1842A1397F2E7.11928@groups.io>
  3 siblings, 0 replies; 9+ messages in thread
From: Gao, Zhichao @ 2019-07-15  7:30 UTC (permalink / raw)
  To: devel; +Cc: Jaben Carsey, Ray Ni, Oleksiy

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1941

The two CHAR16 array ChildCountStr and DeviceCountStr is
defined to hold the decimal string data of UINTN. The max
of UINTN is 18446744073709551615 and it contain 20 characters.
So make their size to 21 CHAR16s to hold the string data with
a null-terminate.
UnicodeValueToStringS regard the value input as INT64, and
21 CHARs is enough to hold the lowest value with minus '-'.
Although the value shouldn't be such big.

Cc: Jaben Carsey <jaben.carsey@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Oleksiy <oleksiyy@ami.com>
Signed-off-by: Zhichao Gao <zhichao.gao@intel.com>
---
 ShellPkg/Library/UefiShellDriver1CommandsLib/Drivers.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/ShellPkg/Library/UefiShellDriver1CommandsLib/Drivers.c b/ShellPkg/Library/UefiShellDriver1CommandsLib/Drivers.c
index 794b737bd1..40deb68808 100644
--- a/ShellPkg/Library/UefiShellDriver1CommandsLib/Drivers.c
+++ b/ShellPkg/Library/UefiShellDriver1CommandsLib/Drivers.c
@@ -263,8 +263,8 @@ ShellCommandRunDrivers (
   EFI_HANDLE          *HandleWalker;
   UINTN               ChildCount;
   UINTN               DeviceCount;
-  CHAR16              ChildCountStr[3];
-  CHAR16              DeviceCountStr[3];
+  CHAR16              ChildCountStr[21];
+  CHAR16              DeviceCountStr[21];
   CHAR16              *Temp2;
   CONST CHAR16        *FullDriverName;
   CHAR16              *TruncatedDriverName;
-- 
2.21.0.windows.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [edk2-devel] [PATCH] ShellPkg/Type.c: Add value check before (LoopVar - 1)
  2019-07-15  7:30 ` [PATCH] ShellPkg/Type.c: Add value check before (LoopVar - 1) Gao, Zhichao
@ 2019-07-15 13:09   ` Jim Dailey
  2019-07-16  0:14     ` Gao, Zhichao
  2019-07-15 14:30   ` Carsey, Jaben
  1 sibling, 1 reply; 9+ messages in thread
From: Jim Dailey @ 2019-07-15 13:09 UTC (permalink / raw)
  To: zhichao.gao; +Cc: jaben.carsey, ray.ni, afish, devel

Zhichao,

I believe the same problem exists further into the function in the 'else'
clause handling UCS2 characters.

Regards,
Jim

-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Gao, Zhichao
Sent: Monday, July 15, 2019 2:30 AM
To: devel@edk2.groups.io
Cc: Jaben Carsey; Ray Ni; Andrew Fish
Subject: [edk2-devel] [PATCH] ShellPkg/Type.c: Add value check before (LoopVar - 1)


[EXTERNAL EMAIL] 

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1964

If the file begin with single line Feed ('\n'), then
"AsciiChar == '\n' && ((CHAR8*)Buffer)[LoopVar-1] != '\r'"
would cause a underflow. Add this condition
"(AsciiChar == '\n' && LoopVar == 0)" before it to make sure
(LoopVar - 1) would never encounter a underflow.

Cc: Jaben Carsey <jaben.carsey@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Andrew Fish <afish@apple.com>
Signed-off-by: Zhichao Gao <zhichao.gao@intel.com>
---
 ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c b/ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c
index 4efc0a8e24..c1f670c713 100644
--- a/ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c
+++ b/ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c
@@ -78,12 +78,13 @@ TypeFileByHandle (
           // Allow Line Feed (LF) (0xA) & Carriage Return (CR) (0xD)
           // characters to be displayed as is.
           //
-          if (AsciiChar == '\n' && ((CHAR8*)Buffer)[LoopVar-1] != '\r') {
+          if ((AsciiChar == '\n' && LoopVar == 0) ||
+              (AsciiChar == '\n' && ((CHAR8*)Buffer)[LoopVar-1] != '\r')) {
             //
-            // In case Line Feed (0xA) is encountered & Carriage Return (0xD)
-            // was not the previous character, print CR and LF. This is because
-            // Shell 2.0 requires carriage return with line feed for displaying
-            // each new line from left.
+            // In case file begin with single line Feed or Line Feed (0xA) is
+            // encountered & Carriage Return (0xD) was not previous character,
+            // print CR and LF. This is because Shell 2.0 requires carriage
+            // return Swith line feed for displaying each new line from left.
             //
             ShellPrintEx (-1, -1, L"\r\n");
             continue;
-- 
2.21.0.windows.1




Dell Corporation Limited is registered in England and Wales. Company Registration Number: 2081369
Registered address: Dell House, The Boulevard, Cain Road, Bracknell,  Berkshire, RG12 1LF, UK.
Company details for other Dell UK entities can be found on  www.dell.co.uk.


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH] ShellPkg/Type.c: Add value check before (LoopVar - 1)
  2019-07-15  7:30 ` [PATCH] ShellPkg/Type.c: Add value check before (LoopVar - 1) Gao, Zhichao
  2019-07-15 13:09   ` [edk2-devel] " Jim Dailey
@ 2019-07-15 14:30   ` Carsey, Jaben
  1 sibling, 0 replies; 9+ messages in thread
From: Carsey, Jaben @ 2019-07-15 14:30 UTC (permalink / raw)
  To: Gao, Zhichao, devel@edk2.groups.io; +Cc: Ni, Ray, Andrew Fish

Please remove the typo (there is an extra S after 'return'). This line:
// return Swith line feed for displaying each new line from left.


> -----Original Message-----
> From: Gao, Zhichao
> Sent: Monday, July 15, 2019 12:30 AM
> To: devel@edk2.groups.io
> Cc: Carsey, Jaben <jaben.carsey@intel.com>; Ni, Ray <ray.ni@intel.com>;
> Andrew Fish <afish@apple.com>
> Subject: [PATCH] ShellPkg/Type.c: Add value check before (LoopVar - 1)
> 
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1964
> 
> If the file begin with single line Feed ('\n'), then
> "AsciiChar == '\n' && ((CHAR8*)Buffer)[LoopVar-1] != '\r'"
> would cause a underflow. Add this condition
> "(AsciiChar == '\n' && LoopVar == 0)" before it to make sure
> (LoopVar - 1) would never encounter a underflow.
> 
> Cc: Jaben Carsey <jaben.carsey@intel.com>
> Cc: Ray Ni <ray.ni@intel.com>
> Cc: Andrew Fish <afish@apple.com>
> Signed-off-by: Zhichao Gao <zhichao.gao@intel.com>
> ---
>  ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c | 11 ++++++-----
>  1 file changed, 6 insertions(+), 5 deletions(-)
> 
> diff --git a/ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c
> b/ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c
> index 4efc0a8e24..c1f670c713 100644
> --- a/ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c
> +++ b/ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c
> @@ -78,12 +78,13 @@ TypeFileByHandle (
>            // Allow Line Feed (LF) (0xA) & Carriage Return (CR) (0xD)
>            // characters to be displayed as is.
>            //
> -          if (AsciiChar == '\n' && ((CHAR8*)Buffer)[LoopVar-1] != '\r') {
> +          if ((AsciiChar == '\n' && LoopVar == 0) ||
> +              (AsciiChar == '\n' && ((CHAR8*)Buffer)[LoopVar-1] != '\r')) {
>              //
> -            // In case Line Feed (0xA) is encountered & Carriage Return (0xD)
> -            // was not the previous character, print CR and LF. This is because
> -            // Shell 2.0 requires carriage return with line feed for displaying
> -            // each new line from left.
> +            // In case file begin with single line Feed or Line Feed (0xA) is
> +            // encountered & Carriage Return (0xD) was not previous character,
> +            // print CR and LF. This is because Shell 2.0 requires carriage
> +            // return Swith line feed for displaying each new line from left.
>              //
>              ShellPrintEx (-1, -1, L"\r\n");
>              continue;
> --
> 2.21.0.windows.1


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [edk2-devel] [PATCH] ShellPkg/Type.c: Add value check before (LoopVar - 1)
  2019-07-15 13:09   ` [edk2-devel] " Jim Dailey
@ 2019-07-16  0:14     ` Gao, Zhichao
  0 siblings, 0 replies; 9+ messages in thread
From: Gao, Zhichao @ 2019-07-16  0:14 UTC (permalink / raw)
  To: devel@edk2.groups.io, jim.dailey@dell.com
  Cc: Carsey, Jaben, Ni, Ray, afish@apple.com

You are right. I missed the USC2 section. I would update that in next version.

Thanks,
Zhichao

> -----Original Message-----
> From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of
> Jim Dailey
> Sent: Monday, July 15, 2019 9:09 PM
> To: Gao, Zhichao <zhichao.gao@intel.com>
> Cc: Carsey, Jaben <jaben.carsey@intel.com>; Ni, Ray <ray.ni@intel.com>;
> afish@apple.com; devel@edk2.groups.io
> Subject: Re: [edk2-devel] [PATCH] ShellPkg/Type.c: Add value check before
> (LoopVar - 1)
> 
> Zhichao,
> 
> I believe the same problem exists further into the function in the 'else'
> clause handling UCS2 characters.
> 
> Regards,
> Jim
> 
> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Gao,
> Zhichao
> Sent: Monday, July 15, 2019 2:30 AM
> To: devel@edk2.groups.io
> Cc: Jaben Carsey; Ray Ni; Andrew Fish
> Subject: [edk2-devel] [PATCH] ShellPkg/Type.c: Add value check before
> (LoopVar - 1)
> 
> 
> [EXTERNAL EMAIL]
> 
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1964
> 
> If the file begin with single line Feed ('\n'), then "AsciiChar == '\n' &&
> ((CHAR8*)Buffer)[LoopVar-1] != '\r'"
> would cause a underflow. Add this condition "(AsciiChar == '\n' && LoopVar
> == 0)" before it to make sure (LoopVar - 1) would never encounter a
> underflow.
> 
> Cc: Jaben Carsey <jaben.carsey@intel.com>
> Cc: Ray Ni <ray.ni@intel.com>
> Cc: Andrew Fish <afish@apple.com>
> Signed-off-by: Zhichao Gao <zhichao.gao@intel.com>
> ---
>  ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c | 11 ++++++-----
>  1 file changed, 6 insertions(+), 5 deletions(-)
> 
> diff --git a/ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c
> b/ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c
> index 4efc0a8e24..c1f670c713 100644
> --- a/ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c
> +++ b/ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c
> @@ -78,12 +78,13 @@ TypeFileByHandle (
>            // Allow Line Feed (LF) (0xA) & Carriage Return (CR) (0xD)
>            // characters to be displayed as is.
>            //
> -          if (AsciiChar == '\n' && ((CHAR8*)Buffer)[LoopVar-1] != '\r') {
> +          if ((AsciiChar == '\n' && LoopVar == 0) ||
> +              (AsciiChar == '\n' && ((CHAR8*)Buffer)[LoopVar-1] !=
> + '\r')) {
>              //
> -            // In case Line Feed (0xA) is encountered & Carriage Return (0xD)
> -            // was not the previous character, print CR and LF. This is because
> -            // Shell 2.0 requires carriage return with line feed for displaying
> -            // each new line from left.
> +            // In case file begin with single line Feed or Line Feed (0xA) is
> +            // encountered & Carriage Return (0xD) was not previous character,
> +            // print CR and LF. This is because Shell 2.0 requires carriage
> +            // return Swith line feed for displaying each new line from left.
>              //
>              ShellPrintEx (-1, -1, L"\r\n");
>              continue;
> --
> 2.21.0.windows.1
> 
> 
> 
> 
> Dell Corporation Limited is registered in England and Wales. Company
> Registration Number: 2081369
> Registered address: Dell House, The Boulevard, Cain Road, Bracknell,
> Berkshire, RG12 1LF, UK.
> Company details for other Dell UK entities can be found on  www.dell.co.uk.
> 
> 
> 


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [edk2-devel] [PATCH] ShellPkg/UefiHandleParsingLib: Fix error allocate pool
       [not found] ` <15B1842A1397F2E7.11928@groups.io>
@ 2019-11-28  2:22   ` Gao, Zhichao
  2019-11-28  4:49     ` Ni, Ray
  0 siblings, 1 reply; 9+ messages in thread
From: Gao, Zhichao @ 2019-11-28  2:22 UTC (permalink / raw)
  To: devel@edk2.groups.io, Gao, Zhichao; +Cc: Carsey, Jaben, Ni, Ray, Andrew Fish

Hi Ray,

Can you help to review this patch?

Thanks,
Zhichao

> -----Original Message-----
> From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of Gao,
> Zhichao
> Sent: Monday, July 15, 2019 3:30 PM
> To: devel@edk2.groups.io
> Cc: Carsey, Jaben <jaben.carsey@intel.com>; Ni, Ray <ray.ni@intel.com>;
> Andrew Fish <afish@apple.com>
> Subject: [edk2-devel] [PATCH] ShellPkg/UefiHandleParsingLib: Fix error allocate
> pool
> 
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1965
> 
> For function InsertNewGuidNameMapping, it rellocate the mGuidList with new
> size
> "mGuidListCount+1 * sizeof(GUID_INFO_BLOCK)". That isn't its purpose and
> would cause a overflow operation in "mGuidList[mGuidListCount - 1].xxx = xxx".
> Its purpose is to increase 1 block size of mGuidList. Change it to
> "(mGuidListCount + 1) * sizeof (GUID_INFO_BLOCK)".
> 
> Adjust the coding style of this function.
> 
> Cc: Jaben Carsey <jaben.carsey@intel.com>
> Cc: Ray Ni <ray.ni@intel.com>
> Cc: Andrew Fish <afish@apple.com>
> Signed-off-by: Zhichao Gao <zhichao.gao@intel.com>
> ---
>  .../UefiHandleParsingLib/UefiHandleParsingLib.c      | 12 ++++++++----
>  1 file changed, 8 insertions(+), 4 deletions(-)
> 
> diff --git a/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c
> b/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c
> index f179c41092..430c0ee70b 100644
> --- a/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c
> +++ b/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c
> @@ -2462,17 +2462,21 @@ InsertNewGuidNameMapping(
>    IN CONST DUMP_PROTOCOL_INFO DumpFunc OPTIONAL
>    )
>  {
> -  ASSERT(Guid   != NULL);
> -  ASSERT(NameID != 0);
> +  ASSERT (Guid   != NULL);
> +  ASSERT (NameID != 0);
> 
> -  mGuidList = ReallocatePool(mGuidListCount * sizeof(GUID_INFO_BLOCK),
> mGuidListCount+1 * sizeof(GUID_INFO_BLOCK), mGuidList);
> +  mGuidList = ReallocatePool (
> +                mGuidListCount * sizeof (GUID_INFO_BLOCK),
> +                (mGuidListCount + 1) * sizeof (GUID_INFO_BLOCK),
> +                mGuidList
> +                );
>    if (mGuidList == NULL) {
>      mGuidListCount = 0;
>      return (EFI_OUT_OF_RESOURCES);
>    }
>    mGuidListCount++;
> 
> -  mGuidList[mGuidListCount - 1].GuidId   = AllocateCopyPool(sizeof(EFI_GUID),
> Guid);
> +  mGuidList[mGuidListCount - 1].GuidId   = AllocateCopyPool (sizeof (EFI_GUID),
> Guid);
>    mGuidList[mGuidListCount - 1].StringId = NameID;
>    mGuidList[mGuidListCount - 1].DumpInfo = DumpFunc;
> 
> --
> 2.21.0.windows.1
> 
> 
> 


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [edk2-devel] [PATCH] ShellPkg/UefiHandleParsingLib: Fix error allocate pool
  2019-11-28  2:22   ` [edk2-devel] [PATCH] ShellPkg/UefiHandleParsingLib: Fix error allocate pool Gao, Zhichao
@ 2019-11-28  4:49     ` Ni, Ray
  0 siblings, 0 replies; 9+ messages in thread
From: Ni, Ray @ 2019-11-28  4:49 UTC (permalink / raw)
  To: Gao, Zhichao, devel@edk2.groups.io; +Cc: Carsey, Jaben, Andrew Fish

Reviewed-by: Ray Ni <ray.ni@intel.com>

> -----Original Message-----
> From: Gao, Zhichao <zhichao.gao@intel.com>
> Sent: Thursday, November 28, 2019 10:23 AM
> To: devel@edk2.groups.io; Gao, Zhichao <zhichao.gao@intel.com>
> Cc: Carsey, Jaben <jaben.carsey@intel.com>; Ni, Ray <ray.ni@intel.com>;
> Andrew Fish <afish@apple.com>
> Subject: RE: [edk2-devel] [PATCH] ShellPkg/UefiHandleParsingLib: Fix error
> allocate pool
> 
> Hi Ray,
> 
> Can you help to review this patch?
> 
> Thanks,
> Zhichao
> 
> > -----Original Message-----
> > From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of
> Gao,
> > Zhichao
> > Sent: Monday, July 15, 2019 3:30 PM
> > To: devel@edk2.groups.io
> > Cc: Carsey, Jaben <jaben.carsey@intel.com>; Ni, Ray <ray.ni@intel.com>;
> > Andrew Fish <afish@apple.com>
> > Subject: [edk2-devel] [PATCH] ShellPkg/UefiHandleParsingLib: Fix error
> allocate
> > pool
> >
> > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1965
> >
> > For function InsertNewGuidNameMapping, it rellocate the mGuidList with
> new
> > size
> > "mGuidListCount+1 * sizeof(GUID_INFO_BLOCK)". That isn't its purpose
> and
> > would cause a overflow operation in "mGuidList[mGuidListCount - 1].xxx =
> xxx".
> > Its purpose is to increase 1 block size of mGuidList. Change it to
> > "(mGuidListCount + 1) * sizeof (GUID_INFO_BLOCK)".
> >
> > Adjust the coding style of this function.
> >
> > Cc: Jaben Carsey <jaben.carsey@intel.com>
> > Cc: Ray Ni <ray.ni@intel.com>
> > Cc: Andrew Fish <afish@apple.com>
> > Signed-off-by: Zhichao Gao <zhichao.gao@intel.com>
> > ---
> >  .../UefiHandleParsingLib/UefiHandleParsingLib.c      | 12 ++++++++----
> >  1 file changed, 8 insertions(+), 4 deletions(-)
> >
> > diff --git a/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c
> > b/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c
> > index f179c41092..430c0ee70b 100644
> > --- a/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c
> > +++ b/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c
> > @@ -2462,17 +2462,21 @@ InsertNewGuidNameMapping(
> >    IN CONST DUMP_PROTOCOL_INFO DumpFunc OPTIONAL
> >    )
> >  {
> > -  ASSERT(Guid   != NULL);
> > -  ASSERT(NameID != 0);
> > +  ASSERT (Guid   != NULL);
> > +  ASSERT (NameID != 0);
> >
> > -  mGuidList = ReallocatePool(mGuidListCount * sizeof(GUID_INFO_BLOCK),
> > mGuidListCount+1 * sizeof(GUID_INFO_BLOCK), mGuidList);
> > +  mGuidList = ReallocatePool (
> > +                mGuidListCount * sizeof (GUID_INFO_BLOCK),
> > +                (mGuidListCount + 1) * sizeof (GUID_INFO_BLOCK),
> > +                mGuidList
> > +                );
> >    if (mGuidList == NULL) {
> >      mGuidListCount = 0;
> >      return (EFI_OUT_OF_RESOURCES);
> >    }
> >    mGuidListCount++;
> >
> > -  mGuidList[mGuidListCount - 1].GuidId   =
> AllocateCopyPool(sizeof(EFI_GUID),
> > Guid);
> > +  mGuidList[mGuidListCount - 1].GuidId   = AllocateCopyPool (sizeof
> (EFI_GUID),
> > Guid);
> >    mGuidList[mGuidListCount - 1].StringId = NameID;
> >    mGuidList[mGuidListCount - 1].DumpInfo = DumpFunc;
> >
> > --
> > 2.21.0.windows.1
> >
> >
> > 


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2019-11-28  4:50 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-07-15  7:30 [PATCH] ShellPkg/Pci.c: Update supported link speed to PCI4.0 Gao, Zhichao
2019-07-15  7:30 ` [PATCH] ShellPkg/Type.c: Add value check before (LoopVar - 1) Gao, Zhichao
2019-07-15 13:09   ` [edk2-devel] " Jim Dailey
2019-07-16  0:14     ` Gao, Zhichao
2019-07-15 14:30   ` Carsey, Jaben
2019-07-15  7:30 ` [PATCH] ShellPkg/UefiHandleParsingLib: Fix error allocate pool Gao, Zhichao
2019-07-15  7:30 ` [PATCH] ShellPkg/UefiShellDriver1CommandsLib: Make array big enough Gao, Zhichao
     [not found] ` <15B1842A1397F2E7.11928@groups.io>
2019-11-28  2:22   ` [edk2-devel] [PATCH] ShellPkg/UefiHandleParsingLib: Fix error allocate pool Gao, Zhichao
2019-11-28  4:49     ` Ni, Ray

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox