回复: [PATCH EDK2 v1 1/1] MdeModulePkg/BaseBmpSupportLib: Fix ColorMap issue


gaoliming
 

Agree this fix to add the check for this case. Reviewed-by: Liming Gao
<gaoliming@...>

Thanks
Liming
-----邮件原件-----
发件人: Wenyi Xie <xiewenyi2@...>
发送时间: 2022年8月11日 16:32
收件人: devel@edk2.groups.io; jian.j.wang@...;
gaoliming@...; zhichao.gao@...; ray.ni@...
抄送: songdongkuang@...; xiewenyi2@...
主题: [PATCH EDK2 v1 1/1] MdeModulePkg/BaseBmpSupportLib: Fix
ColorMap issue

When BitPerPixel is 1,4,8, there should be a color map in bmp file. But if
the format of bmp file is error, it maybe has no color map when
BitPerPixel
is 1,4,8. The condition checking now can not catch this issue.

Cc: Jian J Wang <jian.j.wang@...>
Cc: Liming Gao <gaoliming@...>
Cc: Zhichao Gao <zhichao.gao@...>
Cc: Ray Ni <ray.ni@...>
Signed-off-by: Wenyi Xie <xiewenyi2@...>
---
MdeModulePkg/Library/BaseBmpSupportLib/BmpSupportLib.c | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/MdeModulePkg/Library/BaseBmpSupportLib/BmpSupportLib.c
b/MdeModulePkg/Library/BaseBmpSupportLib/BmpSupportLib.c
index c5e885d7a6d5..bea89d530de6 100644
--- a/MdeModulePkg/Library/BaseBmpSupportLib/BmpSupportLib.c
+++ b/MdeModulePkg/Library/BaseBmpSupportLib/BmpSupportLib.c
@@ -236,6 +236,11 @@ TranslateBmpToGopBlt (
return RETURN_UNSUPPORTED;
}

+ if ((BmpHeader->ImageOffset == sizeof (BMP_IMAGE_HEADER)) &&
+ ((BmpHeader->BitPerPixel & 0x0D) != 0)) {
+ return RETURN_UNSUPPORTED;
+ }
+
if (BmpHeader->ImageOffset > sizeof (BMP_IMAGE_HEADER)) {
switch (BmpHeader->BitPerPixel) {
case 1:
--
2.20.1.windows.1