]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/Workspace/MetaFileParser.py
BaseTools: Parse decimal format INF_VERSION incorrect
[mirror_edk2.git] / BaseTools / Source / Python / Workspace / MetaFileParser.py
index fbfc182c8bfff2f142da3a7c7aec80b157fcfdf1..2b1ab404391266ac8e7a275fd857117f3a64a2d6 100644 (file)
@@ -376,9 +376,12 @@ class MetaFileParser(object):
                 self._Version = int(Value, 0)\r
             elif decVersionPattern.match(Value):\r
                 ValueList = Value.split('.')\r
-                Major = '%04o' % int(ValueList[0], 0)\r
-                Minor = '%04o' % int(ValueList[1], 0)\r
-                self._Version = int('0x' + Major + Minor, 0)\r
+                Major = int(ValueList[0], 0)\r
+                Minor = int(ValueList[1], 0)\r
+                if Major > 0xffff or Minor > 0xffff:\r
+                    EdkLogger.error('Parser', FORMAT_INVALID, "Invalid version number",\r
+                                    ExtraData=self._CurrentLine, File=self.MetaFile, Line=self._LineIndex + 1)\r
+                self._Version = int('0x{0:04x}{1:04x}'.format(Major, Minor), 0)\r
             else:\r
                 EdkLogger.error('Parser', FORMAT_INVALID, "Invalid version number",\r
                                 ExtraData=self._CurrentLine, File=self.MetaFile, Line=self._LineIndex + 1)\r