From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mx.groups.io with SMTP id smtpd.web08.3054.1641876966531731813 for ; Mon, 10 Jan 2022 20:56:06 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=Q1KQ0icg; spf=pass (domain: intel.com, ip: 134.134.136.65, mailfrom: lin.z.chen@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1641876966; x=1673412966; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=TMQiNhWeUABXS+kadhcO03HvqNWq/PJdFkmEQGw0ngY=; b=Q1KQ0icgax8NYv0ZYsp+OZQ49tUk6NVcFKjG4iHzA9Cp8Uqzeu7GyeUl TqrfWCCwGF/yF+5BvEgEtYuxDXehoRnK6ILLqSxSvf1NlYAYB2LHcUABN J/wjPqfNV/4tKYyGqjHQkzKIqrHeDu0L3BhFctQktMiI3RG7D5LLNM0Xx P5KulyeN18uojjVat8yXeURCqx7gx4nL19V/rbxyffaaMSyGXtsNJYQYG 6Wq4TJ0mC82gPdVGVhejeQvEw1IvQ0Y74J63uMQZxAlWEiB2X6C+RzsBA zVGZHXyg/ItMlxbYHugoUerjaqZDcpxkzYX3I6vhvWIBJSMYpmcDr9w5c Q==; X-IronPort-AV: E=McAfee;i="6200,9189,10223"; a="243355956" X-IronPort-AV: E=Sophos;i="5.88,279,1635231600"; d="scan'208";a="243355956" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jan 2022 20:56:05 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,279,1635231600"; d="scan'208";a="474394668" Received: from shbiosbuild1001.sh.intel.com ([10.239.132.191]) by orsmga006.jf.intel.com with ESMTP; 10 Jan 2022 20:56:01 -0800 From: "Chen Lin Z" To: bob.c.feng@intel.com, gaoliming@byosoft.com.cn, yuwei.chen@intel.com, devel@edk2.groups.io Cc: zhuangzhi.li@intel.com, di.zhang@intel.com, "Chen, Lin Z" , Chen Subject: [PATCH] BaseTools: Fix wrong variable header size Date: Tue, 11 Jan 2022 13:01:12 +0000 Message-Id: <5e26f08910b67c693d37fd843fd32e429c6d2401.1641876123.git.lin.z.chen@intel.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: "Chen, Lin Z" 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 --- 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/P= ython/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 =3D collections.namedtuple("uefi_var", "pcdindex,pcdname,defaults= toragename,skuname,var_name, var_guid, var_offset,var_attribute,pcd_default= _value, default_value, data_type,PcdDscLine,StructurePcd")=0D NvStorageHeaderSize =3D 28=0D VariableHeaderSize =3D 32=0D +AuthenticatedVariableHeaderSize =3D 60=0D =0D class VariableMgr(object):=0D def __init__(self, DefaultStoreMap, SkuIdMap):=0D @@ -171,7 +172,10 @@ class VariableMgr(object): DataBuffer =3D VariableMgr.AlignData(var_name_buffer + default= _data)=0D =0D data_size =3D len(DataBuffer)=0D - offset +=3D VariableHeaderSize + len(default_info.var_name.spl= it(","))=0D + if GlobalData.gCommandLineDefines.get(TAB_DSC_DEFINES_VPD_AUTH= ENTICATED_VARIABLE_STORE,"FALSE").upper() =3D=3D "TRUE":=0D + offset +=3D AuthenticatedVariableHeaderSize + len(default_= info.var_name.split(","))=0D + else:=0D + offset +=3D VariableHeaderSize + len(default_info.var_name= .split(","))=0D var_data_offset[default_info.pcdindex] =3D offset=0D offset +=3D data_size - len(default_info.var_name.split(","))= =0D if GlobalData.gCommandLineDefines.get(TAB_DSC_DEFINES_VPD_AUTH= ENTICATED_VARIABLE_STORE,"FALSE").upper() =3D=3D "TRUE":=0D --=20 2.26.2.windows.1