mirror of https://github.com/acidanthera/audk.git
BaseTools: Check the max size for string PCD.
According to PCD_DATABASE_INIT in edk2\MdeModulePkg\Include\Guid\PcdDataBaseSignatureGuid.h, the max size for string PCD should not exceed USHRT_MAX 65535(0xffff). Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: ZhiqiangX Zhao <zhiqiangx.zhao@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Cc: Bob Feng <bob.c.feng@intel.com> Reviewed-by: Bob Feng <bob.c.feng@intel.com>
This commit is contained in:
parent
498cb29dfd
commit
93f9898582
|
@ -1399,6 +1399,13 @@ class PlatformAutoGen(AutoGen):
|
||||||
self.VariableInfo = self.CollectVariables(self._DynamicPcdList)
|
self.VariableInfo = self.CollectVariables(self._DynamicPcdList)
|
||||||
vardump = self.VariableInfo.dump()
|
vardump = self.VariableInfo.dump()
|
||||||
if vardump:
|
if vardump:
|
||||||
|
#
|
||||||
|
#According to PCD_DATABASE_INIT in edk2\MdeModulePkg\Include\Guid\PcdDataBaseSignatureGuid.h,
|
||||||
|
#the max size for string PCD should not exceed USHRT_MAX 65535(0xffff).
|
||||||
|
#typedef UINT16 SIZE_INFO;
|
||||||
|
#//SIZE_INFO SizeTable[];
|
||||||
|
if len(vardump.split(",")) > 0xffff:
|
||||||
|
EdkLogger.error("build", RESOURCE_OVERFLOW, 'The current length of PCD %s value is %d, it exceeds to the max size of String PCD.' %(".".join([PcdNvStoreDfBuffer.TokenSpaceGuidCName,PcdNvStoreDfBuffer.TokenCName]) ,len(vardump.split(","))))
|
||||||
PcdNvStoreDfBuffer.DefaultValue = vardump
|
PcdNvStoreDfBuffer.DefaultValue = vardump
|
||||||
for skuname in PcdNvStoreDfBuffer.SkuInfoList:
|
for skuname in PcdNvStoreDfBuffer.SkuInfoList:
|
||||||
PcdNvStoreDfBuffer.SkuInfoList[skuname].DefaultValue = vardump
|
PcdNvStoreDfBuffer.SkuInfoList[skuname].DefaultValue = vardump
|
||||||
|
|
Loading…
Reference in New Issue