* Re: [PATCH] MdeModulePkg/BmpSupportLib: Refine type cast for pointer subtraction
2018-02-13 2:28 [PATCH] MdeModulePkg/BmpSupportLib: Refine type cast for pointer subtraction Hao Wu
@ 2018-02-13 2:54 ` Zeng, Star
0 siblings, 0 replies; 2+ messages in thread
From: Zeng, Star @ 2018-02-13 2:54 UTC (permalink / raw)
To: Wu, Hao A, edk2-devel@lists.01.org
Cc: Kinney, Michael D, Sean Brogan, Yao, Jiewen, Dong, Eric,
Ni, Ruiyu, Zeng, Star
Reviewed-by: Star Zeng <star.zeng@intel.com>
Thanks,
Star
-----Original Message-----
From: Wu, Hao A
Sent: Tuesday, February 13, 2018 10:28 AM
To: edk2-devel@lists.01.org
Cc: Wu, Hao A <hao.a.wu@intel.com>; Kinney, Michael D <michael.d.kinney@intel.com>; Sean Brogan <sean.brogan@microsoft.com>; Yao, Jiewen <jiewen.yao@intel.com>; Zeng, Star <star.zeng@intel.com>; Dong, Eric <eric.dong@intel.com>; Ni, Ruiyu <ruiyu.ni@intel.com>
Subject: [PATCH] MdeModulePkg/BmpSupportLib: Refine type cast for pointer subtraction
Since the pointer subtraction here is not performed by pointers to elements of the same array object. This might lead to potential issues, such behavior is undefined according to C11 standard.
Refine the pointer subtraction expressions by casting each pointer to UINTN first and then perform the subtraction.
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Sean Brogan <sean.brogan@microsoft.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
---
MdeModulePkg/Library/BaseBmpSupportLib/BmpSupportLib.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/MdeModulePkg/Library/BaseBmpSupportLib/BmpSupportLib.c b/MdeModulePkg/Library/BaseBmpSupportLib/BmpSupportLib.c
index 2c95e91ecc..467cd6a58d 100644
--- a/MdeModulePkg/Library/BaseBmpSupportLib/BmpSupportLib.c
+++ b/MdeModulePkg/Library/BaseBmpSupportLib/BmpSupportLib.c
@@ -426,7 +426,7 @@ TranslateBmpToGopBlt (
}
- ImageIndex = (UINTN)(Image - ImageHeader);
+ ImageIndex = (UINTN)Image - (UINTN)ImageHeader;
if ((ImageIndex % 4) != 0) {
//
// Bmp Image starts each row on a 32-bit boundary!
--
2.12.0.windows.1
^ permalink raw reply related [flat|nested] 2+ messages in thread