BaseTools/Source/Python/Workspace/MetaFileParser.py | 7 +++++++ 1 file changed, 7 insertions(+)
Add a check that HiiString field in the HII format PCD entry must not
be an empty string.
Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
---
BaseTools/Source/Python/Workspace/MetaFileParser.py | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/BaseTools/Source/Python/Workspace/MetaFileParser.py b/BaseTools/Source/Python/Workspace/MetaFileParser.py
index d094403..4a5311a 100644
--- a/BaseTools/Source/Python/Workspace/MetaFileParser.py
+++ b/BaseTools/Source/Python/Workspace/MetaFileParser.py
@@ -1137,10 +1137,17 @@ class DscParser(MetaFileParser):
if len(ValueList) > 1 and ValueList[1] != TAB_VOID \
and self._ItemType in [MODEL_PCD_DYNAMIC_DEFAULT, MODEL_PCD_DYNAMIC_EX_DEFAULT]:
EdkLogger.error('Parser', FORMAT_INVALID, "The datum type '%s' of PCD is wrong" % ValueList[1],
ExtraData=self._CurrentLine, File=self.MetaFile, Line=self._LineIndex + 1)
+ # Validate the VariableName of DynamicHii and DynamicExHii for PCD Entry must not be an empty string
+ if self._ItemType in [MODEL_PCD_DYNAMIC_HII, MODEL_PCD_DYNAMIC_EX_HII]:
+ DscPcdValueList = GetSplitValueList(TokenList[1], TAB_VALUE_SPLIT, 1)
+ if len(DscPcdValueList[0].replace('L','').replace('"','').strip()) == 0:
+ EdkLogger.error('Parser', FORMAT_INVALID, "The VariableName field in the HII format PCD entry must not be an empty string",
+ ExtraData=self._CurrentLine, File=self.MetaFile, Line=self._LineIndex + 1)
+
# if value are 'True', 'true', 'TRUE' or 'False', 'false', 'FALSE', replace with integer 1 or 0.
DscPcdValueList = GetSplitValueList(TokenList[1], TAB_VALUE_SPLIT, 1)
if DscPcdValueList[0] in ['True', 'true', 'TRUE']:
self._ValueList[2] = TokenList[1].replace(DscPcdValueList[0], '1', 1);
elif DscPcdValueList[0] in ['False', 'false', 'FALSE']:
--
2.6.1.windows.1
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Reviewed-by: Liming Gao <liming.gao@intel.com> >-----Original Message----- >From: Zhu, Yonghong >Sent: Friday, June 23, 2017 2:44 PM >To: edk2-devel@lists.01.org >Cc: Gao, Liming <liming.gao@intel.com> >Subject: [Patch] BaseTools: report error HiiString in HII format PCD must not >be empty > >Add a check that HiiString field in the HII format PCD entry must not >be an empty string. > >Cc: Liming Gao <liming.gao@intel.com> >Contributed-under: TianoCore Contribution Agreement 1.0 >Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com> >--- > BaseTools/Source/Python/Workspace/MetaFileParser.py | 7 +++++++ > 1 file changed, 7 insertions(+) > >diff --git a/BaseTools/Source/Python/Workspace/MetaFileParser.py >b/BaseTools/Source/Python/Workspace/MetaFileParser.py >index d094403..4a5311a 100644 >--- a/BaseTools/Source/Python/Workspace/MetaFileParser.py >+++ b/BaseTools/Source/Python/Workspace/MetaFileParser.py >@@ -1137,10 +1137,17 @@ class DscParser(MetaFileParser): > if len(ValueList) > 1 and ValueList[1] != TAB_VOID \ > and self._ItemType in [MODEL_PCD_DYNAMIC_DEFAULT, >MODEL_PCD_DYNAMIC_EX_DEFAULT]: > EdkLogger.error('Parser', FORMAT_INVALID, "The datum type '%s' of >PCD is wrong" % ValueList[1], > ExtraData=self._CurrentLine, File=self.MetaFile, >Line=self._LineIndex + 1) > >+ # Validate the VariableName of DynamicHii and DynamicExHii for PCD >Entry must not be an empty string >+ if self._ItemType in [MODEL_PCD_DYNAMIC_HII, >MODEL_PCD_DYNAMIC_EX_HII]: >+ DscPcdValueList = GetSplitValueList(TokenList[1], TAB_VALUE_SPLIT, 1) >+ if len(DscPcdValueList[0].replace('L','').replace('"','').strip()) == 0: >+ EdkLogger.error('Parser', FORMAT_INVALID, "The VariableName >field in the HII format PCD entry must not be an empty string", >+ ExtraData=self._CurrentLine, File=self.MetaFile, >Line=self._LineIndex + 1) >+ > # if value are 'True', 'true', 'TRUE' or 'False', 'false', 'FALSE', replace with >integer 1 or 0. > DscPcdValueList = GetSplitValueList(TokenList[1], TAB_VALUE_SPLIT, 1) > if DscPcdValueList[0] in ['True', 'true', 'TRUE']: > self._ValueList[2] = TokenList[1].replace(DscPcdValueList[0], '1', 1); > elif DscPcdValueList[0] in ['False', 'false', 'FALSE']: >-- >2.6.1.windows.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
© 2016 - 2024 Red Hat, Inc.