summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYuwei Chen <yuwei.chen@intel.com>2023-06-29 11:35:19 +0800
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2023-12-11 10:12:52 +0000
commitb5f5106c1e2fb027776a88178fab844f81930b59 (patch)
tree0cad71458dec5be6562d61dc59e91577ae9f6b8e
parentbb13a4adabcf0e5a1608583c386472773dca5726 (diff)
downloadedk2-b5f5106c1e2fb027776a88178fab844f81930b59.tar.gz
edk2-b5f5106c1e2fb027776a88178fab844f81930b59.tar.bz2
edk2-b5f5106c1e2fb027776a88178fab844f81930b59.zip
BaseTools: FMMT replace new free space fixing in replace
In FMMT replace function, when newffs size <= targetffs size, the new free space is calculated wrong as loss the pad data delta size. That will cause invalid binary generated. This patch fixes this issue. Cc: Rebecca Cran <rebecca@bsdio.com> Cc: Liming Gao <gaoliming@byosoft.com.cn> Cc: Bob Feng <bob.c.feng@intel.com> Signed-off-by: Yuwei Chen <yuwei.chen@intel.com> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn> Reviewed-by: Bob Feng <bob.c.feng@intel.com>
-rw-r--r--BaseTools/Source/Python/FMMT/core/FvHandler.py2
1 files changed, 1 insertions, 1 deletions
diff --git a/BaseTools/Source/Python/FMMT/core/FvHandler.py b/BaseTools/Source/Python/FMMT/core/FvHandler.py
index ff3d637623..058b29321f 100644
--- a/BaseTools/Source/Python/FMMT/core/FvHandler.py
+++ b/BaseTools/Source/Python/FMMT/core/FvHandler.py
@@ -442,7 +442,7 @@ class FvHandler:
# Start free space calculating and moving process.
self.ModifyTest(TargetFv.Parent, Needed_Space)
else:
- New_Free_Space = self.TargetFfs.Data.Size - self.NewFfs.Data.Size
+ New_Free_Space = self.TargetFfs.Data.Size + len(self.TargetFfs.Data.PadData) - self.NewFfs.Data.Size - len(self.NewFfs.Data.PadData)
# If TargetFv already have free space, move the new free space into it.
if TargetFv.Data.Free_Space:
TargetFv.Child[-1].Data.Data += b'\xff' * New_Free_Space