Hi  All,

I have update the patch for the comments, Please help review the patch.

-----Original Message-----
From: Jiang, Xiaolu <xiaolu.ji...@intel.com> 
Sent: Monday, November 8, 2021 4:22 PM
To: devel@edk2.groups.io
Cc: Jiang, Xiaolu <xiaolu.ji...@intel.com>; Feng, Bob C <bob.c.f...@intel.com>; 
Liming Gao <gaolim...@byosoft.com.cn>; Chen, Christine <yuwei.c...@intel.com>
Subject: [edk2-devel][PATCH] BaseTools: Increase the DevicePath length for 
support more PCD value.

Currently the PCD Value only support 13 Guid,When use more 13 pcd will cause 
the build tool fail, Need calculate the required memory,then allocate it.

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

Cc: Bob Feng <bob.c.f...@intel.com>
Cc: Liming Gao <gaolim...@byosoft.com.cn>
Cc: Yuwei Chen <yuwei.c...@intel.com>

Signed-off-by: Xiaolu Jiang <xiaolu.ji...@intel.com>
---
 BaseTools/Source/C/DevicePath/DevicePath.c | 36 +++++++++++++++++++++-
 1 file changed, 35 insertions(+), 1 deletion(-)

diff --git a/BaseTools/Source/C/DevicePath/DevicePath.c 
b/BaseTools/Source/C/DevicePath/DevicePath.c
index c4d224ed61..8a0f5f4e2a 100644
--- a/BaseTools/Source/C/DevicePath/DevicePath.c
+++ b/BaseTools/Source/C/DevicePath/DevicePath.c
@@ -144,6 +144,40 @@ Returns:
   *UniString = '\0'; } ++/**+  Returns the length of a Null-terminated ASCII 
string.++  This function returns the number of ASCII characters in the 
Null-terminated+  ASCII string specified by String.++  If Length > 0 and 
Destination is NULL, then ASSERT().+  If Length > 0 and Source is NULL, then 
ASSERT().+  If PcdMaximumAsciiStringLength is not zero and String contains more 
than+  PcdMaximumAsciiStringLength ASCII characters, not including the 
Null-terminator,+  then ASSERT().++  @param  String  A pointer to a 
Null-terminated ASCII string.++  @return The length of 
String.++**/+UINTN+EFIAPI+AsciiStrLen (+  IN      CONST CHAR8               
*String+  )+{+  UINTN                             Length;++  ASSERT (String != 
NULL);++  for (Length = 0; *String != '\0'; String++, Length++) {++  }+  return 
Length;+}+ int main(int argc, CHAR8 *argv[]) {   CHAR8 * Str;@@ -170,7 +204,7 
@@ int main(int argc, CHAR8 *argv[])
     fprintf(stderr, "Invalid option value, Device Path can't be NULL");     
return STATUS_ERROR;   }-  Str16 = (CHAR16 *)malloc(1024);+  Str16 = (CHAR16 
*)malloc((AsciiStrLen (Str) + 1) * sizeof (CHAR16));   if (Str16 == NULL) {     
fprintf(stderr, "Resource, memory cannot be allocated");     return 
STATUS_ERROR;-- 
2.30.2.windows.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#83538): https://edk2.groups.io/g/devel/message/83538
Mute This Topic: https://groups.io/mt/86949833/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to