BaseTools/Source/Python/Workspace/DscBuildData.py | 8 ++++++++ BaseTools/Source/Python/Workspace/MetaFileParser.py | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-)
This patch add DefaultStore section format Check and it use same logic
with SKUID section.
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
---
BaseTools/Source/Python/Workspace/DscBuildData.py | 8 ++++++++
BaseTools/Source/Python/Workspace/MetaFileParser.py | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/BaseTools/Source/Python/Workspace/DscBuildData.py b/BaseTools/Source/Python/Workspace/DscBuildData.py
index 752fe05..16fe608 100644
--- a/BaseTools/Source/Python/Workspace/DscBuildData.py
+++ b/BaseTools/Source/Python/Workspace/DscBuildData.py
@@ -606,10 +606,18 @@ class DscBuildData(PlatformBuildClassObject):
EdkLogger.error('build', FORMAT_INVALID, 'No DefaultStores ID number',
File=self.MetaFile, Line=Record[-1])
if Record[1] in [None, '']:
EdkLogger.error('build', FORMAT_INVALID, 'No DefaultStores ID name',
File=self.MetaFile, Line=Record[-1])
+ Pattern = re.compile('^[1-9]\d*|0$')
+ HexPattern = re.compile(r'0[xX][0-9a-fA-F]+$')
+ if Pattern.match(Record[0]) == None and HexPattern.match(Record[0]) == None:
+ EdkLogger.error('build', FORMAT_INVALID, "The format of the DefaultStores ID number is invalid. It only support Integer and HexNumber",
+ File=self.MetaFile, Line=Record[-1])
+ if not IsValidWord(Record[1]):
+ EdkLogger.error('build', FORMAT_INVALID, "The format of the DefaultStores ID name is invalid. The correct format is '(a-zA-Z0-9_)(a-zA-Z0-9_-.)*'",
+ File=self.MetaFile, Line=Record[-1])
self.DefaultStores[Record[1].upper()] = (self.ToInt(Record[0]),Record[1].upper())
if TAB_DEFAULT_STORES_DEFAULT not in self.DefaultStores:
self.DefaultStores[TAB_DEFAULT_STORES_DEFAULT] = (0,TAB_DEFAULT_STORES_DEFAULT)
GlobalData.gDefaultStores = self.DefaultStores.keys()
if GlobalData.gDefaultStores:
diff --git a/BaseTools/Source/Python/Workspace/MetaFileParser.py b/BaseTools/Source/Python/Workspace/MetaFileParser.py
index e236732..202093a 100644
--- a/BaseTools/Source/Python/Workspace/MetaFileParser.py
+++ b/BaseTools/Source/Python/Workspace/MetaFileParser.py
@@ -1103,11 +1103,11 @@ class DscParser(MetaFileParser):
self._ValueList[0:len(TokenList)] = TokenList
@ParseMacro
def _DefaultStoresParser(self):
TokenList = GetSplitValueList(self._CurrentLine, TAB_VALUE_SPLIT)
if len(TokenList) != 2:
- EdkLogger.error('Parser', FORMAT_INVALID, "Correct format is '<Integer>|<UiName>'",
+ EdkLogger.error('Parser', FORMAT_INVALID, "Correct format is '<Number>|<UiName>'",
ExtraData=self._CurrentLine, File=self.MetaFile, Line=self._LineIndex + 1)
self._ValueList[0:len(TokenList)] = TokenList
## Parse Edk style of library modules
@ParseMacro
--
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: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Yonghong Zhu > Sent: Monday, January 22, 2018 1:48 PM > To: edk2-devel@lists.01.org > Subject: [edk2] [Patch] BaseTools: Add DefaultStore section format Check > > This patch add DefaultStore section format Check and it use same logic > with SKUID section. > > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com> > --- > BaseTools/Source/Python/Workspace/DscBuildData.py | 8 ++++++++ > BaseTools/Source/Python/Workspace/MetaFileParser.py | 2 +- > 2 files changed, 9 insertions(+), 1 deletion(-) > > diff --git a/BaseTools/Source/Python/Workspace/DscBuildData.py b/BaseTools/Source/Python/Workspace/DscBuildData.py > index 752fe05..16fe608 100644 > --- a/BaseTools/Source/Python/Workspace/DscBuildData.py > +++ b/BaseTools/Source/Python/Workspace/DscBuildData.py > @@ -606,10 +606,18 @@ class DscBuildData(PlatformBuildClassObject): > EdkLogger.error('build', FORMAT_INVALID, 'No DefaultStores ID number', > File=self.MetaFile, Line=Record[-1]) > if Record[1] in [None, '']: > EdkLogger.error('build', FORMAT_INVALID, 'No DefaultStores ID name', > File=self.MetaFile, Line=Record[-1]) > + Pattern = re.compile('^[1-9]\d*|0$') > + HexPattern = re.compile(r'0[xX][0-9a-fA-F]+$') > + if Pattern.match(Record[0]) == None and HexPattern.match(Record[0]) == None: > + EdkLogger.error('build', FORMAT_INVALID, "The format of the DefaultStores ID number is invalid. It only > support Integer and HexNumber", > + File=self.MetaFile, Line=Record[-1]) > + if not IsValidWord(Record[1]): > + EdkLogger.error('build', FORMAT_INVALID, "The format of the DefaultStores ID name is invalid. The correct > format is '(a-zA-Z0-9_)(a-zA-Z0-9_-.)*'", > + File=self.MetaFile, Line=Record[-1]) > self.DefaultStores[Record[1].upper()] = (self.ToInt(Record[0]),Record[1].upper()) > if TAB_DEFAULT_STORES_DEFAULT not in self.DefaultStores: > self.DefaultStores[TAB_DEFAULT_STORES_DEFAULT] = (0,TAB_DEFAULT_STORES_DEFAULT) > GlobalData.gDefaultStores = self.DefaultStores.keys() > if GlobalData.gDefaultStores: > diff --git a/BaseTools/Source/Python/Workspace/MetaFileParser.py b/BaseTools/Source/Python/Workspace/MetaFileParser.py > index e236732..202093a 100644 > --- a/BaseTools/Source/Python/Workspace/MetaFileParser.py > +++ b/BaseTools/Source/Python/Workspace/MetaFileParser.py > @@ -1103,11 +1103,11 @@ class DscParser(MetaFileParser): > self._ValueList[0:len(TokenList)] = TokenList > @ParseMacro > def _DefaultStoresParser(self): > TokenList = GetSplitValueList(self._CurrentLine, TAB_VALUE_SPLIT) > if len(TokenList) != 2: > - EdkLogger.error('Parser', FORMAT_INVALID, "Correct format is '<Integer>|<UiName>'", > + EdkLogger.error('Parser', FORMAT_INVALID, "Correct format is '<Number>|<UiName>'", > ExtraData=self._CurrentLine, File=self.MetaFile, Line=self._LineIndex + 1) > self._ValueList[0:len(TokenList)] = TokenList > > ## Parse Edk style of library modules > @ParseMacro > -- > 2.6.1.windows.1 > > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
© 2016 - 2024 Red Hat, Inc.