Add a check that HiiString field in the HII format PCD entry must not
be an empty string.

Cc: Liming Gao <[email protected]>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <[email protected]>
---
 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
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to