[edk2] [Patch] NetworkPkg/HttpDxe: Fix build warning error if CHAR8 is unsigned.

Jiaxin Wu posted 1 patch 6 years, 2 months ago
Failed in applying to current master (apply log)
NetworkPkg/HttpDxe/HttpsSupport.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
[edk2] [Patch] NetworkPkg/HttpDxe: Fix build warning error if CHAR8 is unsigned.
Posted by Jiaxin Wu 6 years, 2 months ago
This patch is to fix the compiler warning error: C4245. The issue will happen
if the below build option is enabled:
  *_*_*_CC_FLAGS = -J.

That's because the value of ('A' - 'a') is a negative value, which will
be converted to an unsigned type if CHAR8 is treated as unsigned:
  Src -= ('A' - 'a');

The above issue is also recorded at:
https://bugzilla.tianocore.org/show_bug.cgi?id=815.

Cc: Ye Ting <ting.ye@intel.com>
Cc: Fu Siyuan <siyuan.fu@intel.com>
Cc: Michael Kinney <michael.d.kinney@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Wu Jiaxin <jiaxin.wu@intel.com>
---
 NetworkPkg/HttpDxe/HttpsSupport.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/NetworkPkg/HttpDxe/HttpsSupport.c b/NetworkPkg/HttpDxe/HttpsSupport.c
index e6f4d5a..6aed61a 100644
--- a/NetworkPkg/HttpDxe/HttpsSupport.c
+++ b/NetworkPkg/HttpDxe/HttpsSupport.c
@@ -65,15 +65,15 @@ AsciiStrCaseStr (
             && (*String != '\0')) {
       Src = *String;
       Dst = *SearchStringTmp;
 
       if ((Src >= 'A') && (Src <= 'Z')) {
-        Src -= ('A' - 'a');
+        Src += ('a' - 'A');
       }
 
       if ((Dst >= 'A') && (Dst <= 'Z')) {
-        Dst -= ('A' - 'a');
+        Dst += ('a' - 'A');
       }
 
       if (Src != Dst) {
         break;
       }
-- 
1.9.5.msysgit.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [Patch] NetworkPkg/HttpDxe: Fix build warning error if CHAR8 is unsigned.
Posted by Fu, Siyuan 6 years, 2 months ago

Reviewed-by: Fu Siyuan <siyuan.fu@intel.com>

> -----Original Message-----
> From: Wu, Jiaxin
> Sent: Tuesday, January 2, 2018 11:34 AM
> To: edk2-devel@lists.01.org
> Cc: Ye, Ting <ting.ye@intel.com>; Fu, Siyuan <siyuan.fu@intel.com>; Kinney,
> Michael D <michael.d.kinney@intel.com>; Wu, Jiaxin <jiaxin.wu@intel.com>
> Subject: [Patch] NetworkPkg/HttpDxe: Fix build warning error if CHAR8 is
> unsigned.
> 
> This patch is to fix the compiler warning error: C4245. The issue will
> happen
> if the below build option is enabled:
>   *_*_*_CC_FLAGS = -J.
> 
> That's because the value of ('A' - 'a') is a negative value, which will
> be converted to an unsigned type if CHAR8 is treated as unsigned:
>   Src -= ('A' - 'a');
> 
> The above issue is also recorded at:
> https://bugzilla.tianocore.org/show_bug.cgi?id=815.
> 
> Cc: Ye Ting <ting.ye@intel.com>
> Cc: Fu Siyuan <siyuan.fu@intel.com>
> Cc: Michael Kinney <michael.d.kinney@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Wu Jiaxin <jiaxin.wu@intel.com>
> ---
>  NetworkPkg/HttpDxe/HttpsSupport.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/NetworkPkg/HttpDxe/HttpsSupport.c
> b/NetworkPkg/HttpDxe/HttpsSupport.c
> index e6f4d5a..6aed61a 100644
> --- a/NetworkPkg/HttpDxe/HttpsSupport.c
> +++ b/NetworkPkg/HttpDxe/HttpsSupport.c
> @@ -65,15 +65,15 @@ AsciiStrCaseStr (
>              && (*String != '\0')) {
>        Src = *String;
>        Dst = *SearchStringTmp;
> 
>        if ((Src >= 'A') && (Src <= 'Z')) {
> -        Src -= ('A' - 'a');
> +        Src += ('a' - 'A');
>        }
> 
>        if ((Dst >= 'A') && (Dst <= 'Z')) {
> -        Dst -= ('A' - 'a');
> +        Dst += ('a' - 'A');
>        }
> 
>        if (Src != Dst) {
>          break;
>        }
> --
> 1.9.5.msysgit.1

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