public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH 0/2] Fix bugs in BmpSupportLib
@ 2018-06-25  7:36 Ruiyu Ni
  2018-06-25  7:36 ` [PATCH 1/2] MdeModulePkg/BmpSupportLib: Correct debug message Ruiyu Ni
  2018-06-25  7:36 ` [PATCH 2/2] MdeModulePkg/BmpSupportLib: Check PixelHeight/PixelWidth against 0 Ruiyu Ni
  0 siblings, 2 replies; 9+ messages in thread
From: Ruiyu Ni @ 2018-06-25  7:36 UTC (permalink / raw)
  To: edk2-devel

Ruiyu Ni (2):
  MdeModulePkg/BmpSupportLib: Correct debug message
  MdeModulePkg/BmpSupportLib: Check PixelHeight/PixelWidth against 0

 MdeModulePkg/Library/BaseBmpSupportLib/BmpSupportLib.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

-- 
2.16.1.windows.1



^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 1/2] MdeModulePkg/BmpSupportLib: Correct debug message
  2018-06-25  7:36 [PATCH 0/2] Fix bugs in BmpSupportLib Ruiyu Ni
@ 2018-06-25  7:36 ` Ruiyu Ni
  2018-07-02 10:03   ` Zeng, Star
  2018-06-25  7:36 ` [PATCH 2/2] MdeModulePkg/BmpSupportLib: Check PixelHeight/PixelWidth against 0 Ruiyu Ni
  1 sibling, 1 reply; 9+ messages in thread
From: Ruiyu Ni @ 2018-06-25  7:36 UTC (permalink / raw)
  To: edk2-devel; +Cc: Michael D Kinney, Star Zeng

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
---
 MdeModulePkg/Library/BaseBmpSupportLib/BmpSupportLib.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/MdeModulePkg/Library/BaseBmpSupportLib/BmpSupportLib.c b/MdeModulePkg/Library/BaseBmpSupportLib/BmpSupportLib.c
index 467cd6a58d..2c23e2c61c 100644
--- a/MdeModulePkg/Library/BaseBmpSupportLib/BmpSupportLib.c
+++ b/MdeModulePkg/Library/BaseBmpSupportLib/BmpSupportLib.c
@@ -288,7 +288,7 @@ TranslateBmpToGopBlt (
     DEBUG ((
       DEBUG_ERROR,
       "TranslateBmpToGopBlt: invalid BltBuffer needed size... PixelWidth:0x%x PixelHeight:0x%x\n",
-      BltBufferSize
+      BmpHeader->PixelWidth, BmpHeader->PixelHeight
       ));
 
     return RETURN_UNSUPPORTED;
@@ -304,7 +304,7 @@ TranslateBmpToGopBlt (
   if (EFI_ERROR (Status)) {
     DEBUG ((
       DEBUG_ERROR,
-      "TranslateBmpToGopBlt: invalid BltBuffer needed size... BltBufferSize:0x%lx struct size:0x%x\n",
+      "TranslateBmpToGopBlt: invalid BltBuffer needed size... PixelWidth x PixelHeight:0x%x struct size:0x%x\n",
       Temp, sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)
       ));
 
-- 
2.16.1.windows.1



^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 2/2] MdeModulePkg/BmpSupportLib: Check PixelHeight/PixelWidth against 0
  2018-06-25  7:36 [PATCH 0/2] Fix bugs in BmpSupportLib Ruiyu Ni
  2018-06-25  7:36 ` [PATCH 1/2] MdeModulePkg/BmpSupportLib: Correct debug message Ruiyu Ni
@ 2018-06-25  7:36 ` Ruiyu Ni
  2018-07-02 10:05   ` Zeng, Star
  1 sibling, 1 reply; 9+ messages in thread
From: Ruiyu Ni @ 2018-06-25  7:36 UTC (permalink / raw)
  To: edk2-devel; +Cc: Star Zeng, Michael D Kinney

The patch adds check logic to make sure that for a input BMP file,
the width or height is not 0; for a input GOP blt buffer, the width
or height is not 0. Otherwise, UNSUPPORTED status is returned.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
---
 MdeModulePkg/Library/BaseBmpSupportLib/BmpSupportLib.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/MdeModulePkg/Library/BaseBmpSupportLib/BmpSupportLib.c b/MdeModulePkg/Library/BaseBmpSupportLib/BmpSupportLib.c
index 2c23e2c61c..6196262d14 100644
--- a/MdeModulePkg/Library/BaseBmpSupportLib/BmpSupportLib.c
+++ b/MdeModulePkg/Library/BaseBmpSupportLib/BmpSupportLib.c
@@ -148,6 +148,11 @@ TranslateBmpToGopBlt (
     return RETURN_UNSUPPORTED;
   }
 
+  if ((BmpHeader->PixelHeight == 0) || (BmpHeader->PixelWidth == 0)) {
+    DEBUG ((DEBUG_ERROR, "TranslateBmpToGopBlt: BmpHeader->PixelHeight or BmpHeader->PixelWidth is 0.\n"));
+    return RETURN_UNSUPPORTED;
+  }
+
   //
   // Only support BITMAPINFOHEADER format.
   // BITMAPFILEHEADER + BITMAPINFOHEADER = BMP_IMAGE_HEADER
@@ -484,6 +489,10 @@ TranslateGopBltToBmp (
     return RETURN_INVALID_PARAMETER;
   }
 
+  if ((PixelHeight == 0) || (PixelWidth == 0)) {
+    return RETURN_UNSUPPORTED;
+  }
+
   //
   // Allocate memory for BMP file.
   //
-- 
2.16.1.windows.1



^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/2] MdeModulePkg/BmpSupportLib: Correct debug message
  2018-06-25  7:36 ` [PATCH 1/2] MdeModulePkg/BmpSupportLib: Correct debug message Ruiyu Ni
@ 2018-07-02 10:03   ` Zeng, Star
  0 siblings, 0 replies; 9+ messages in thread
From: Zeng, Star @ 2018-07-02 10:03 UTC (permalink / raw)
  To: Ni, Ruiyu, edk2-devel@lists.01.org; +Cc: Kinney, Michael D, Zeng, Star

Please add reference to bugzilla link into the commit log.

https://bugzilla.tianocore.org/show_bug.cgi?id=944

Reviewed-by: Star Zeng <star.zeng@intel.com>


Thanks,
Star
-----Original Message-----
From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Ruiyu Ni
Sent: Monday, June 25, 2018 3:37 PM
To: edk2-devel@lists.01.org
Cc: Kinney, Michael D <michael.d.kinney@intel.com>; Zeng, Star <star.zeng@intel.com>
Subject: [edk2] [PATCH 1/2] MdeModulePkg/BmpSupportLib: Correct debug message

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
---
 MdeModulePkg/Library/BaseBmpSupportLib/BmpSupportLib.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/MdeModulePkg/Library/BaseBmpSupportLib/BmpSupportLib.c b/MdeModulePkg/Library/BaseBmpSupportLib/BmpSupportLib.c
index 467cd6a58d..2c23e2c61c 100644
--- a/MdeModulePkg/Library/BaseBmpSupportLib/BmpSupportLib.c
+++ b/MdeModulePkg/Library/BaseBmpSupportLib/BmpSupportLib.c
@@ -288,7 +288,7 @@ TranslateBmpToGopBlt (
     DEBUG ((
       DEBUG_ERROR,
       "TranslateBmpToGopBlt: invalid BltBuffer needed size... PixelWidth:0x%x PixelHeight:0x%x\n",
-      BltBufferSize
+      BmpHeader->PixelWidth, BmpHeader->PixelHeight
       ));
 
     return RETURN_UNSUPPORTED;
@@ -304,7 +304,7 @@ TranslateBmpToGopBlt (
   if (EFI_ERROR (Status)) {
     DEBUG ((
       DEBUG_ERROR,
-      "TranslateBmpToGopBlt: invalid BltBuffer needed size... BltBufferSize:0x%lx struct size:0x%x\n",
+      "TranslateBmpToGopBlt: invalid BltBuffer needed size... PixelWidth x PixelHeight:0x%x struct size:0x%x\n",
       Temp, sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)
       ));
 
-- 
2.16.1.windows.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/2] MdeModulePkg/BmpSupportLib: Check PixelHeight/PixelWidth against 0
  2018-06-25  7:36 ` [PATCH 2/2] MdeModulePkg/BmpSupportLib: Check PixelHeight/PixelWidth against 0 Ruiyu Ni
@ 2018-07-02 10:05   ` Zeng, Star
  2018-07-03  2:02     ` Ni, Ruiyu
  0 siblings, 1 reply; 9+ messages in thread
From: Zeng, Star @ 2018-07-02 10:05 UTC (permalink / raw)
  To: Ni, Ruiyu, edk2-devel@lists.01.org; +Cc: Kinney, Michael D, Zeng, Star

Please add reference to bugzilla link into the commit log.

https://bugzilla.tianocore.org/show_bug.cgi?id=944

Another, is there any reason to only add debug message for " if ((BmpHeader->PixelHeight == 0) || (BmpHeader->PixelWidth == 0)) { ", but not " if ((PixelHeight == 0) || (PixelWidth == 0)) { " ???


Thanks,
Star
-----Original Message-----
From: Ni, Ruiyu 
Sent: Monday, June 25, 2018 3:37 PM
To: edk2-devel@lists.01.org
Cc: Zeng, Star <star.zeng@intel.com>; Kinney, Michael D <michael.d.kinney@intel.com>
Subject: [PATCH 2/2] MdeModulePkg/BmpSupportLib: Check PixelHeight/PixelWidth against 0

The patch adds check logic to make sure that for a input BMP file, the width or height is not 0; for a input GOP blt buffer, the width or height is not 0. Otherwise, UNSUPPORTED status is returned.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
---
 MdeModulePkg/Library/BaseBmpSupportLib/BmpSupportLib.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/MdeModulePkg/Library/BaseBmpSupportLib/BmpSupportLib.c b/MdeModulePkg/Library/BaseBmpSupportLib/BmpSupportLib.c
index 2c23e2c61c..6196262d14 100644
--- a/MdeModulePkg/Library/BaseBmpSupportLib/BmpSupportLib.c
+++ b/MdeModulePkg/Library/BaseBmpSupportLib/BmpSupportLib.c
@@ -148,6 +148,11 @@ TranslateBmpToGopBlt (
     return RETURN_UNSUPPORTED;
   }
 
+  if ((BmpHeader->PixelHeight == 0) || (BmpHeader->PixelWidth == 0)) {
+    DEBUG ((DEBUG_ERROR, "TranslateBmpToGopBlt: BmpHeader->PixelHeight or BmpHeader->PixelWidth is 0.\n"));
+    return RETURN_UNSUPPORTED;
+  }
+
   //
   // Only support BITMAPINFOHEADER format.
   // BITMAPFILEHEADER + BITMAPINFOHEADER = BMP_IMAGE_HEADER @@ -484,6 +489,10 @@ TranslateGopBltToBmp (
     return RETURN_INVALID_PARAMETER;
   }
 
+  if ((PixelHeight == 0) || (PixelWidth == 0)) {
+    return RETURN_UNSUPPORTED;
+  }
+
   //
   // Allocate memory for BMP file.
   //
--
2.16.1.windows.1



^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/2] MdeModulePkg/BmpSupportLib: Check PixelHeight/PixelWidth against 0
  2018-07-02 10:05   ` Zeng, Star
@ 2018-07-03  2:02     ` Ni, Ruiyu
  2018-07-03  2:10       ` Zeng, Star
  0 siblings, 1 reply; 9+ messages in thread
From: Ni, Ruiyu @ 2018-07-03  2:02 UTC (permalink / raw)
  To: Zeng, Star, edk2-devel@lists.01.org; +Cc: Kinney, Michael D

On 7/2/2018 6:05 PM, Zeng, Star wrote:
> Please add reference to bugzilla link into the commit log.
> 
> https://bugzilla.tianocore.org/show_bug.cgi?id=944
OK
> 
> Another, is there any reason to only add debug message for " if ((BmpHeader->PixelHeight == 0) || (BmpHeader->PixelWidth == 0)) { ", but not " if ((PixelHeight == 0) || (PixelWidth == 0)) { " ???
PixelHeight and PixelWidth are passed in from caller directly.
But when caller passes in BmpImage buffer, it doesn't know the format
of the BMP header, so a debug message is shown to tell caller what happens.

-- 
Thanks,
Ray


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/2] MdeModulePkg/BmpSupportLib: Check PixelHeight/PixelWidth against 0
  2018-07-03  2:02     ` Ni, Ruiyu
@ 2018-07-03  2:10       ` Zeng, Star
  2018-07-03  2:16         ` Ni, Ruiyu
  0 siblings, 1 reply; 9+ messages in thread
From: Zeng, Star @ 2018-07-03  2:10 UTC (permalink / raw)
  To: Ni, Ruiyu, edk2-devel@lists.01.org; +Cc: Kinney, Michael D, Zeng, Star

So, you mean caller knows ((PixelHeight == 0) || (PixelWidth == 0)), and caller knows TranslateGopBltToBmp will return RETURN_UNSUPPORTED for that?


Thanks,
Star
-----Original Message-----
From: Ni, Ruiyu 
Sent: Tuesday, July 3, 2018 10:03 AM
To: Zeng, Star <star.zeng@intel.com>; edk2-devel@lists.01.org
Cc: Kinney, Michael D <michael.d.kinney@intel.com>
Subject: Re: [PATCH 2/2] MdeModulePkg/BmpSupportLib: Check PixelHeight/PixelWidth against 0

On 7/2/2018 6:05 PM, Zeng, Star wrote:
> Please add reference to bugzilla link into the commit log.
> 
> https://bugzilla.tianocore.org/show_bug.cgi?id=944
OK
> 
> Another, is there any reason to only add debug message for " if ((BmpHeader->PixelHeight == 0) || (BmpHeader->PixelWidth == 0)) { ", but not " if ((PixelHeight == 0) || (PixelWidth == 0)) { " ???
PixelHeight and PixelWidth are passed in from caller directly.
But when caller passes in BmpImage buffer, it doesn't know the format of the BMP header, so a debug message is shown to tell caller what happens.

--
Thanks,
Ray

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/2] MdeModulePkg/BmpSupportLib: Check PixelHeight/PixelWidth against 0
  2018-07-03  2:10       ` Zeng, Star
@ 2018-07-03  2:16         ` Ni, Ruiyu
  2018-07-03  2:27           ` Zeng, Star
  0 siblings, 1 reply; 9+ messages in thread
From: Ni, Ruiyu @ 2018-07-03  2:16 UTC (permalink / raw)
  To: Zeng, Star, edk2-devel@lists.01.org; +Cc: Kinney, Michael D

On 7/3/2018 10:10 AM, Zeng, Star wrote:
> So, you mean caller knows ((PixelHeight == 0) || (PixelWidth == 0)), and caller knows TranslateGopBltToBmp will return RETURN_UNSUPPORTED for that?
Caller knows an error status may return when any of
PixelHeight/PixelWidth is 0.
But that's not the reason that I only add debug message for BmpHeader
case.

For first API:
TranslateBmpToGopBlt (
   IN     VOID                           *BmpImage,
   IN     UINTN                          BmpImageSize,
   IN OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL  **GopBlt,
   IN OUT UINTN                          *GopBltSize,
   OUT    UINTN                          *PixelHeight,
   OUT    UINTN                          *PixelWidth

Caller only needs to read a bmp file from a file system, then passes
the buffer to the above API. Caller doesn't know the format of BMP.
API checks for that. And using debug message to help caller understand
the detailed error reason.

For second API:
TranslateGopBltToBmp (
   IN     EFI_GRAPHICS_OUTPUT_BLT_PIXEL  *GopBlt,
   IN     UINT32                         PixelHeight,
   IN     UINT32                         PixelWidth,
   IN OUT VOID                           **BmpImage,
   IN OUT UINT32                         *BmpImageSize

PixelHeight and PixelWidth are parameters.


> 
> 
> Thanks,
> Star
> -----Original Message-----
> From: Ni, Ruiyu
> Sent: Tuesday, July 3, 2018 10:03 AM
> To: Zeng, Star <star.zeng@intel.com>; edk2-devel@lists.01.org
> Cc: Kinney, Michael D <michael.d.kinney@intel.com>
> Subject: Re: [PATCH 2/2] MdeModulePkg/BmpSupportLib: Check PixelHeight/PixelWidth against 0
> 
> On 7/2/2018 6:05 PM, Zeng, Star wrote:
>> Please add reference to bugzilla link into the commit log.
>>
>> https://bugzilla.tianocore.org/show_bug.cgi?id=944
> OK
>>
>> Another, is there any reason to only add debug message for " if ((BmpHeader->PixelHeight == 0) || (BmpHeader->PixelWidth == 0)) { ", but not " if ((PixelHeight == 0) || (PixelWidth == 0)) { " ???
> PixelHeight and PixelWidth are passed in from caller directly.
> But when caller passes in BmpImage buffer, it doesn't know the format of the BMP header, so a debug message is shown to tell caller what happens.
> 
> --
> Thanks,
> Ray
> 


-- 
Thanks,
Ray


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/2] MdeModulePkg/BmpSupportLib: Check PixelHeight/PixelWidth against 0
  2018-07-03  2:16         ` Ni, Ruiyu
@ 2018-07-03  2:27           ` Zeng, Star
  0 siblings, 0 replies; 9+ messages in thread
From: Zeng, Star @ 2018-07-03  2:27 UTC (permalink / raw)
  To: Ni, Ruiyu, edk2-devel@lists.01.org; +Cc: Kinney, Michael D, Zeng, Star

Ok. Reviewed-by: Star Zeng <star.zeng@intel.com>.


Thanks,
Star
-----Original Message-----
From: Ni, Ruiyu 
Sent: Tuesday, July 3, 2018 10:17 AM
To: Zeng, Star <star.zeng@intel.com>; edk2-devel@lists.01.org
Cc: Kinney, Michael D <michael.d.kinney@intel.com>
Subject: Re: [PATCH 2/2] MdeModulePkg/BmpSupportLib: Check PixelHeight/PixelWidth against 0

On 7/3/2018 10:10 AM, Zeng, Star wrote:
> So, you mean caller knows ((PixelHeight == 0) || (PixelWidth == 0)), and caller knows TranslateGopBltToBmp will return RETURN_UNSUPPORTED for that?
Caller knows an error status may return when any of PixelHeight/PixelWidth is 0.
But that's not the reason that I only add debug message for BmpHeader case.

For first API:
TranslateBmpToGopBlt (
   IN     VOID                           *BmpImage,
   IN     UINTN                          BmpImageSize,
   IN OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL  **GopBlt,
   IN OUT UINTN                          *GopBltSize,
   OUT    UINTN                          *PixelHeight,
   OUT    UINTN                          *PixelWidth

Caller only needs to read a bmp file from a file system, then passes the buffer to the above API. Caller doesn't know the format of BMP.
API checks for that. And using debug message to help caller understand the detailed error reason.

For second API:
TranslateGopBltToBmp (
   IN     EFI_GRAPHICS_OUTPUT_BLT_PIXEL  *GopBlt,
   IN     UINT32                         PixelHeight,
   IN     UINT32                         PixelWidth,
   IN OUT VOID                           **BmpImage,
   IN OUT UINT32                         *BmpImageSize

PixelHeight and PixelWidth are parameters.


> 
> 
> Thanks,
> Star
> -----Original Message-----
> From: Ni, Ruiyu
> Sent: Tuesday, July 3, 2018 10:03 AM
> To: Zeng, Star <star.zeng@intel.com>; edk2-devel@lists.01.org
> Cc: Kinney, Michael D <michael.d.kinney@intel.com>
> Subject: Re: [PATCH 2/2] MdeModulePkg/BmpSupportLib: Check 
> PixelHeight/PixelWidth against 0
> 
> On 7/2/2018 6:05 PM, Zeng, Star wrote:
>> Please add reference to bugzilla link into the commit log.
>>
>> https://bugzilla.tianocore.org/show_bug.cgi?id=944
> OK
>>
>> Another, is there any reason to only add debug message for " if ((BmpHeader->PixelHeight == 0) || (BmpHeader->PixelWidth == 0)) { ", but not " if ((PixelHeight == 0) || (PixelWidth == 0)) { " ???
> PixelHeight and PixelWidth are passed in from caller directly.
> But when caller passes in BmpImage buffer, it doesn't know the format of the BMP header, so a debug message is shown to tell caller what happens.
> 
> --
> Thanks,
> Ray
> 


--
Thanks,
Ray

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2018-07-03  2:28 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-06-25  7:36 [PATCH 0/2] Fix bugs in BmpSupportLib Ruiyu Ni
2018-06-25  7:36 ` [PATCH 1/2] MdeModulePkg/BmpSupportLib: Correct debug message Ruiyu Ni
2018-07-02 10:03   ` Zeng, Star
2018-06-25  7:36 ` [PATCH 2/2] MdeModulePkg/BmpSupportLib: Check PixelHeight/PixelWidth against 0 Ruiyu Ni
2018-07-02 10:05   ` Zeng, Star
2018-07-03  2:02     ` Ni, Ruiyu
2018-07-03  2:10       ` Zeng, Star
2018-07-03  2:16         ` Ni, Ruiyu
2018-07-03  2:27           ` Zeng, Star

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox