From b5f5106c1e2fb027776a88178fab844f81930b59 Mon Sep 17 00:00:00 2001 From: Yuwei Chen Date: Thu, 29 Jun 2023 11:35:19 +0800 Subject: 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 Cc: Liming Gao Cc: Bob Feng Signed-off-by: Yuwei Chen Reviewed-by: Liming Gao Reviewed-by: Bob Feng --- BaseTools/Source/Python/FMMT/core/FvHandler.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BaseTools/Source/Python/FMMT/core/FvHandler.py b/BaseTools/Source/Python/FMMT/core/FvHandler.py index ff3d637..058b293 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 -- cgit v1.1