public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [edk2-devel][PATCH] BaseTools: Increase the DevicePath length for support more PCD value.
@ 2021-11-29  2:13 Xiaolu.Jiang
  2021-11-29  5:04 ` 回复: " gaoliming
  0 siblings, 1 reply; 10+ messages in thread
From: Xiaolu.Jiang @ 2021-11-29  2:13 UTC (permalink / raw)
  To: devel; +Cc: Xiaolu.Jiang, Bob Feng, Liming Gao, Yuwei Chen

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.feng@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Yuwei Chen <yuwei.chen@intel.com>

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

diff --git a/BaseTools/Source/C/DevicePath/DevicePath.c b/BaseTools/Source/C/DevicePath/DevicePath.c
index c4d224ed61..ed19eb52f6 100644
--- a/BaseTools/Source/C/DevicePath/DevicePath.c
+++ b/BaseTools/Source/C/DevicePath/DevicePath.c
@@ -170,7 +170,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((strlen (Str) + 1) * sizeof (CHAR16));
   if (Str16 == NULL) {
     fprintf(stderr, "Resource, memory cannot be allocated");
     return STATUS_ERROR;
-- 
2.30.2.windows.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread
* [edk2-devel][PATCH] BaseTools: Increase the DevicePath length for support more PCD value.
@ 2021-11-16  1:42 Xiaolu.jiang
  2021-11-16 12:46 ` Bob Feng
  0 siblings, 1 reply; 10+ messages in thread
From: Xiaolu.jiang @ 2021-11-16  1:42 UTC (permalink / raw)
  To: devel; +Cc: Xiaolu.Jiang, Bob Feng, Liming Gao, Yuwei Chen

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.feng@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Yuwei Chen <yuwei.chen@intel.com>

Signed-off-by: Xiaolu Jiang <xiaolu.jiang@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


^ permalink raw reply related	[flat|nested] 10+ messages in thread
[parent not found: <20211106035056.183-1-xiaolu.jiang@intel.com>]

end of thread, other threads:[~2021-12-09  0:10 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20211108082136.2707-1-xiaolu.jiang@intel.com>
2021-11-10  2:59 ` FW: [edk2-devel][PATCH] BaseTools: Increase the DevicePath length for support more PCD value Jiang, Xiaolu
2021-11-12  6:59   ` Jiang, Xiaolu
2021-11-29  2:13 Xiaolu.Jiang
2021-11-29  5:04 ` 回复: " gaoliming
2021-12-09  0:10   ` Bob Feng
  -- strict thread matches above, loose matches on Subject: below --
2021-11-16  1:42 Xiaolu.jiang
2021-11-16 12:46 ` Bob Feng
     [not found] <20211106035056.183-1-xiaolu.jiang@intel.com>
2021-11-08  1:14 ` 回复: " gaoliming
2021-11-08  1:24   ` Jiang, Xiaolu
2021-11-08  2:26     ` Jiang, Xiaolu
2021-11-08  2:30       ` Bob Feng
2021-11-08  3:17       ` 回复: " gaoliming
2021-11-08  3:20         ` Jiang, Xiaolu

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