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 <[email protected]>
---
 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
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to