[edk2-devel] [edk2-platform PATCH] Intel/FitGen: Fixed overflow issue when overlap checking

Vin Xue posted 1 patch 2 years, 3 months ago
Failed in applying to current master (apply log)
Silicon/Intel/Tools/FitGen/FitGen.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[edk2-devel] [edk2-platform PATCH] Intel/FitGen: Fixed overflow issue when overlap checking
Posted by Vin Xue 2 years, 3 months ago
When creating FIT table, if a IBB FV (e.g. Security FV) is blow ACM FV
( e.g. Firmware Binaries FV), but the size of IBB FV is smaller than
ACM FV, it will cause overflow issue, unexpected split will happen.
Added a statement checking to avoid this issue.

Cc: Bob Feng <bob.c.feng@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Yuwei Chen <yuwei.chen@intel.com>
Signed-off-by: Vin Xue <vinxue@outlook.com>
---
 Silicon/Intel/Tools/FitGen/FitGen.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Silicon/Intel/Tools/FitGen/FitGen.c b/Silicon/Intel/Tools/FitGen/FitGen.c
index 290e688f6e..3cb8516757 100644
--- a/Silicon/Intel/Tools/FitGen/FitGen.c
+++ b/Silicon/Intel/Tools/FitGen/FitGen.c
@@ -759,7 +759,7 @@ CheckOverlap (
   INTN  Index;

 

   for (Index = 0; Index < (INTN)gFitTableContext.BiosModuleNumber; Index ++) {

-    if ((gFitTableContext.BiosModule[Index].Address <= Address) &&

+    if ((gFitTableContext.BiosModule[Index].Address <= Address) && (gFitTableContext.BiosModule[Index].Size >= Size) &&

         ((gFitTableContext.BiosModule[Index].Size - Size) >= (Address - gFitTableContext.BiosModule[Index].Address))) {

       UINT32  TempSize;

       INT32   SubIndex;

-- 
2.31.1.windows.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#86033): https://edk2.groups.io/g/devel/message/86033
Mute This Topic: https://groups.io/mt/88658814/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [edk2-devel] [edk2-platform PATCH] Intel/FitGen: Fixed overflow issue when overlap checking
Posted by Vin Xue 2 years, 2 months ago
Hi Sir,

Could you help to review this simple change? It was verified on Client BIOS. Thanks.

________________________________
From: Vin Xue <vinxue@outlook.com>
Sent: Monday, January 24, 2022 5:09 PM
To: devel@edk2.groups.io <devel@edk2.groups.io>
Cc: Bob Feng <bob.c.feng@intel.com>; Liming Gao <gaoliming@byosoft.com.cn>; Yuwei Chen <yuwei.chen@intel.com>
Subject: [edk2-platform PATCH] Intel/FitGen: Fixed overflow issue when overlap checking

When creating FIT table, if a IBB FV (e.g. Security FV) is blow ACM FV
( e.g. Firmware Binaries FV), but the size of IBB FV is smaller than
ACM FV, it will cause overflow issue, unexpected split will happen.
Added a statement checking to avoid this issue.

Cc: Bob Feng <bob.c.feng@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Yuwei Chen <yuwei.chen@intel.com>
Signed-off-by: Vin Xue <vinxue@outlook.com>
---
 Silicon/Intel/Tools/FitGen/FitGen.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Silicon/Intel/Tools/FitGen/FitGen.c b/Silicon/Intel/Tools/FitGen/FitGen.c
index 290e688f6e..3cb8516757 100644
--- a/Silicon/Intel/Tools/FitGen/FitGen.c
+++ b/Silicon/Intel/Tools/FitGen/FitGen.c
@@ -759,7 +759,7 @@ CheckOverlap (
   INTN  Index;



   for (Index = 0; Index < (INTN)gFitTableContext.BiosModuleNumber; Index ++) {

-    if ((gFitTableContext.BiosModule[Index].Address <= Address) &&

+    if ((gFitTableContext.BiosModule[Index].Address <= Address) && (gFitTableContext.BiosModule[Index].Size >= Size) &&

         ((gFitTableContext.BiosModule[Index].Size - Size) >= (Address - gFitTableContext.BiosModule[Index].Address))) {

       UINT32  TempSize;

       INT32   SubIndex;

--
2.31.1.windows.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#86864): https://edk2.groups.io/g/devel/message/86864
Mute This Topic: https://groups.io/mt/88658814/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-