* [PATCH] BaseTools: Fix wrong variable header size
@ 2022-01-11 13:01 Chen Lin Z
2022-01-11 5:25 ` Bob Feng
0 siblings, 1 reply; 2+ messages in thread
From: Chen Lin Z @ 2022-01-11 13:01 UTC (permalink / raw)
To: bob.c.feng, gaoliming, yuwei.chen, devel
Cc: zhuangzhi.li, di.zhang, Chen, Lin Z, Chen
From: "Chen, Lin Z" <lin.z.chen@intel.com>
There are two type variable header and their size are different,
need to use matched size when calculating offset info, otherwise
it'll destroy other variables content when patching.
Signed-off-by: Chen, Lin Z <lin.z.chen@intel.com>
---
BaseTools/Source/Python/AutoGen/GenVar.py | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/BaseTools/Source/Python/AutoGen/GenVar.py b/BaseTools/Source/Python/AutoGen/GenVar.py
index 3f3dc69e90..f2ad54ba63 100644
--- a/BaseTools/Source/Python/AutoGen/GenVar.py
+++ b/BaseTools/Source/Python/AutoGen/GenVar.py
@@ -20,6 +20,7 @@ import Common.GlobalData as GlobalData
var_info = collections.namedtuple("uefi_var", "pcdindex,pcdname,defaultstoragename,skuname,var_name, var_guid, var_offset,var_attribute,pcd_default_value, default_value, data_type,PcdDscLine,StructurePcd")
NvStorageHeaderSize = 28
VariableHeaderSize = 32
+AuthenticatedVariableHeaderSize = 60
class VariableMgr(object):
def __init__(self, DefaultStoreMap, SkuIdMap):
@@ -171,7 +172,10 @@ class VariableMgr(object):
DataBuffer = VariableMgr.AlignData(var_name_buffer + default_data)
data_size = len(DataBuffer)
- offset += VariableHeaderSize + len(default_info.var_name.split(","))
+ if GlobalData.gCommandLineDefines.get(TAB_DSC_DEFINES_VPD_AUTHENTICATED_VARIABLE_STORE,"FALSE").upper() == "TRUE":
+ offset += AuthenticatedVariableHeaderSize + len(default_info.var_name.split(","))
+ else:
+ offset += VariableHeaderSize + len(default_info.var_name.split(","))
var_data_offset[default_info.pcdindex] = offset
offset += data_size - len(default_info.var_name.split(","))
if GlobalData.gCommandLineDefines.get(TAB_DSC_DEFINES_VPD_AUTHENTICATED_VARIABLE_STORE,"FALSE").upper() == "TRUE":
--
2.26.2.windows.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] BaseTools: Fix wrong variable header size
2022-01-11 13:01 [PATCH] BaseTools: Fix wrong variable header size Chen Lin Z
@ 2022-01-11 5:25 ` Bob Feng
0 siblings, 0 replies; 2+ messages in thread
From: Bob Feng @ 2022-01-11 5:25 UTC (permalink / raw)
To: Chen, Lin Z, Gao, Liming, Chen, Christine, devel@edk2.groups.io
Cc: Li, Zhuangzhi, Zhang, Di
This patch is good to me.
Reviewed-by: Bob Feng <bob.c.feng@intel.com>
-----Original Message-----
From: Chen, Lin Z <lin.z.chen@intel.com>
Sent: Tuesday, January 11, 2022 12:58 PM
To: Feng, Bob C <bob.c.feng@intel.com>; Gao, Liming <gaoliming@byosoft.com.cn>; Chen, Christine <yuwei.chen@intel.com>; devel@edk2.groups.io
Cc: Li, Zhuangzhi <zhuangzhi.li@intel.com>; Zhang, Di <di.zhang@intel.com>; Chen, Lin Z <lin.z.chen@intel.com>; Chen
Subject: [PATCH] BaseTools: Fix wrong variable header size
There are two type variable header and their size are different, need to use matched size when calculating offset info, otherwise it'll destroy other variables content when patching.
Signed-off-by: Chen, Lin Z <lin.z.chen@intel.com>
---
BaseTools/Source/Python/AutoGen/GenVar.py | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/BaseTools/Source/Python/AutoGen/GenVar.py b/BaseTools/Source/Python/AutoGen/GenVar.py
index 3f3dc69e90..f2ad54ba63 100644
--- a/BaseTools/Source/Python/AutoGen/GenVar.py
+++ b/BaseTools/Source/Python/AutoGen/GenVar.py
@@ -20,6 +20,7 @@ import Common.GlobalData as GlobalData
var_info = collections.namedtuple("uefi_var", "pcdindex,pcdname,defaultstoragename,skuname,var_name, var_guid, var_offset,var_attribute,pcd_default_value, default_value, data_type,PcdDscLine,StructurePcd") NvStorageHeaderSize = 28 VariableHeaderSize = 32+AuthenticatedVariableHeaderSize = 60 class VariableMgr(object): def __init__(self, DefaultStoreMap, SkuIdMap):@@ -171,7 +172,10 @@ class VariableMgr(object):
DataBuffer = VariableMgr.AlignData(var_name_buffer + default_data) data_size = len(DataBuffer)- offset += VariableHeaderSize + len(default_info.var_name.split(","))+ if GlobalData.gCommandLineDefines.get(TAB_DSC_DEFINES_VPD_AUTHENTICATED_VARIABLE_STORE,"FALSE").upper() == "TRUE":+ offset += AuthenticatedVariableHeaderSize + len(default_info.var_name.split(","))+ else:+ offset += VariableHeaderSize + len(default_info.var_name.split(",")) var_data_offset[default_info.pcdindex] = offset offset += data_size - len(default_info.var_name.split(",")) if GlobalData.gCommandLineDefines.get(TAB_DSC_DEFINES_VPD_AUTHENTICATED_VARIABLE_STORE,"FALSE").upper() == "TRUE":--
2.26.2.windows.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2022-01-11 5:25 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-01-11 13:01 [PATCH] BaseTools: Fix wrong variable header size Chen Lin Z
2022-01-11 5:25 ` Bob Feng
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox