These seem like perfect examples to write host based unit tests for the bmpsupportlib. Then you could run all sorts of different bmp contents thru the lib routines. 

Have you thought about adding that

Thanks
Sean

From: devel@edk2.groups.io <devel@edk2.groups.io> on behalf of wenyi,xie via groups.io <xiewenyi2=huawei.com@groups.io>
Sent: Wednesday, August 17, 2022 7:26:07 PM
To: devel@edk2.groups.io <devel@edk2.groups.io>; jian.j.wang@intel.com <jian.j.wang@intel.com>; gaoliming@byosoft.com.cn <gaoliming@byosoft.com.cn>; zhichao.gao@intel.com <zhichao.gao@intel.com>; ray.ni@intel.com <ray.ni@intel.com>
Cc: songdongkuang@huawei.com <songdongkuang@huawei.com>; xiewenyi2@huawei.com <xiewenyi2@huawei.com>
Subject: [edk2-devel] [PATCH EDK2 v2 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@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Zhichao Gao <zhichao.gao@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Signed-off-by: Wenyi Xie <xiewenyi2@huawei.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
---
 MdeModulePkg/Library/BaseBmpSupportLib/BmpSupportLib.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/MdeModulePkg/Library/BaseBmpSupportLib/BmpSupportLib.c b/MdeModulePkg/Library/BaseBmpSupportLib/BmpSupportLib.c
index c5e885d7a6d5..1cdd857f48f8 100644
--- a/MdeModulePkg/Library/BaseBmpSupportLib/BmpSupportLib.c
+++ b/MdeModulePkg/Library/BaseBmpSupportLib/BmpSupportLib.c
@@ -236,6 +236,12 @@ 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