public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [Patch] BaseTools: Fix the crash issue when Dynamic structure Pcd use in FDF
@ 2018-10-19  7:20 Yonghong Zhu
  2018-10-19 14:32 ` Carsey, Jaben
  0 siblings, 1 reply; 2+ messages in thread
From: Yonghong Zhu @ 2018-10-19  7:20 UTC (permalink / raw)
  To: edk2-devel

The case is use Dynamic structure Pcd in the FDF file.
Current code already save the  Guid, Name and Filed info for those Pcd,
but it directly use the dict key as [Name, Guid] and cause this crash
issue.

Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=1264
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
---
 BaseTools/Source/Python/AutoGen/AutoGen.py | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/BaseTools/Source/Python/AutoGen/AutoGen.py b/BaseTools/Source/Python/AutoGen/AutoGen.py
index f2146a7..804f579 100644
--- a/BaseTools/Source/Python/AutoGen/AutoGen.py
+++ b/BaseTools/Source/Python/AutoGen/AutoGen.py
@@ -567,12 +567,12 @@ class WorkspaceAutoGen(AutoGen):
                 if (Name, Guid) not in DecPcds:
                     EdkLogger.error(
                         'build',
                         PARSER_ERROR,
                         "PCD (%s.%s) used in FDF is not declared in DEC files." % (Guid, Name),
-                        File = self.FdfProfile.PcdFileLineDict[Name, Guid][0],
-                        Line = self.FdfProfile.PcdFileLineDict[Name, Guid][1]
+                        File = self.FdfProfile.PcdFileLineDict[Name, Guid, Fileds][0],
+                        Line = self.FdfProfile.PcdFileLineDict[Name, Guid, Fileds][1]
                     )
                 else:
                     # Check whether Dynamic or DynamicEx PCD used in FDF file. If used, build break and give a error message.
                     if (Name, Guid, TAB_PCDS_FIXED_AT_BUILD) in DecPcdsKey \
                         or (Name, Guid, TAB_PCDS_PATCHABLE_IN_MODULE) in DecPcdsKey \
@@ -581,12 +581,12 @@ class WorkspaceAutoGen(AutoGen):
                     elif (Name, Guid, TAB_PCDS_DYNAMIC) in DecPcdsKey or (Name, Guid, TAB_PCDS_DYNAMIC_EX) in DecPcdsKey:
                         EdkLogger.error(
                                 'build',
                                 PARSER_ERROR,
                                 "Using Dynamic or DynamicEx type of PCD [%s.%s] in FDF file is not allowed." % (Guid, Name),
-                                File = self.FdfProfile.PcdFileLineDict[Name, Guid][0],
-                                Line = self.FdfProfile.PcdFileLineDict[Name, Guid][1]
+                                File = self.FdfProfile.PcdFileLineDict[Name, Guid, Fileds][0],
+                                Line = self.FdfProfile.PcdFileLineDict[Name, Guid, Fileds][1]
                         )
 
             Pa = PlatformAutoGen(self, self.MetaFile, Target, Toolchain, Arch)
             #
             # Explicitly collect platform's dynamic PCDs
-- 
2.6.1.windows.1



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

* Re: [Patch] BaseTools: Fix the crash issue when Dynamic structure Pcd use in FDF
  2018-10-19  7:20 [Patch] BaseTools: Fix the crash issue when Dynamic structure Pcd use in FDF Yonghong Zhu
@ 2018-10-19 14:32 ` Carsey, Jaben
  0 siblings, 0 replies; 2+ messages in thread
From: Carsey, Jaben @ 2018-10-19 14:32 UTC (permalink / raw)
  To: Zhu, Yonghong, edk2-devel@lists.01.org

Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>

> -----Original Message-----
> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of
> Yonghong Zhu
> Sent: Friday, October 19, 2018 12:21 AM
> To: edk2-devel@lists.01.org
> Subject: [edk2] [Patch] BaseTools: Fix the crash issue when Dynamic
> structure Pcd use in FDF
> 
> The case is use Dynamic structure Pcd in the FDF file.
> Current code already save the  Guid, Name and Filed info for those Pcd,
> but it directly use the dict key as [Name, Guid] and cause this crash
> issue.
> 
> Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=1264
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
> ---
>  BaseTools/Source/Python/AutoGen/AutoGen.py | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/BaseTools/Source/Python/AutoGen/AutoGen.py
> b/BaseTools/Source/Python/AutoGen/AutoGen.py
> index f2146a7..804f579 100644
> --- a/BaseTools/Source/Python/AutoGen/AutoGen.py
> +++ b/BaseTools/Source/Python/AutoGen/AutoGen.py
> @@ -567,12 +567,12 @@ class WorkspaceAutoGen(AutoGen):
>                  if (Name, Guid) not in DecPcds:
>                      EdkLogger.error(
>                          'build',
>                          PARSER_ERROR,
>                          "PCD (%s.%s) used in FDF is not declared in DEC files." % (Guid,
> Name),
> -                        File = self.FdfProfile.PcdFileLineDict[Name, Guid][0],
> -                        Line = self.FdfProfile.PcdFileLineDict[Name, Guid][1]
> +                        File = self.FdfProfile.PcdFileLineDict[Name, Guid, Fileds][0],
> +                        Line = self.FdfProfile.PcdFileLineDict[Name, Guid, Fileds][1]
>                      )
>                  else:
>                      # Check whether Dynamic or DynamicEx PCD used in FDF file. If
> used, build break and give a error message.
>                      if (Name, Guid, TAB_PCDS_FIXED_AT_BUILD) in DecPcdsKey \
>                          or (Name, Guid, TAB_PCDS_PATCHABLE_IN_MODULE) in
> DecPcdsKey \
> @@ -581,12 +581,12 @@ class WorkspaceAutoGen(AutoGen):
>                      elif (Name, Guid, TAB_PCDS_DYNAMIC) in DecPcdsKey or (Name,
> Guid, TAB_PCDS_DYNAMIC_EX) in DecPcdsKey:
>                          EdkLogger.error(
>                                  'build',
>                                  PARSER_ERROR,
>                                  "Using Dynamic or DynamicEx type of PCD [%s.%s] in FDF file
> is not allowed." % (Guid, Name),
> -                                File = self.FdfProfile.PcdFileLineDict[Name, Guid][0],
> -                                Line = self.FdfProfile.PcdFileLineDict[Name, Guid][1]
> +                                File = self.FdfProfile.PcdFileLineDict[Name, Guid, Fileds][0],
> +                                Line = self.FdfProfile.PcdFileLineDict[Name, Guid, Fileds][1]
>                          )
> 
>              Pa = PlatformAutoGen(self, self.MetaFile, Target, Toolchain, Arch)
>              #
>              # Explicitly collect platform's dynamic PCDs
> --
> 2.6.1.windows.1
> 
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel


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

end of thread, other threads:[~2018-10-19 14:32 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-10-19  7:20 [Patch] BaseTools: Fix the crash issue when Dynamic structure Pcd use in FDF Yonghong Zhu
2018-10-19 14:32 ` Carsey, Jaben

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