From mboxrd@z Thu Jan 1 00:00:00 1970 Subject: [PATCH] MdeModulePkg/Bus/Ata/AtaAtapiPassThru: Fix SIGN_EXTENSION Coverity issue To: devel@edk2.groups.io From: "Ranbir Singh" X-Originating-Location: Bengaluru, Karnataka, IN (122.172.85.38) X-Originating-Platform: Windows Chrome 108 User-Agent: GROUPS.IO Web Poster MIME-Version: 1.0 Date: Tue, 03 Jan 2023 21:55:14 -0800 Message-ID: Content-Type: multipart/alternative; boundary="gOEmlOfrLzIcjANl3Rof" --gOEmlOfrLzIcjANl3Rof Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Line number 1348 does contain a typecast with UINT32, but it is after all the operations (16-bit left shift followed by OR'ing) are over. To avoid any SIGN_EXTENSION, typecast the intermediate result after 16-bit left shift operation immediately with UINT32. REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D4204 Signed-off-by: Ranbir Singh --- MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.c b/Mde= ModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.c index 1070516b35..cbe6bee2ab 100644 --- a/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.c +++ b/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.c @@ -1345,7 +1345,7 @@ AtaPassThruPassThru ( // Check logical block size // if ((IdentifyData->AtaData.phy_logic_sector_support & BIT12) !=3D 0) { -=C2=A0 =C2=A0 =C2=A0 BlockSize =3D (UINT32)(((IdentifyData->AtaData.logic_= sector_size_hi << 16) | IdentifyData->AtaData.logic_sector_size_lo) * sizeo= f (UINT16)); +=C2=A0 =C2=A0 =C2=A0 BlockSize =3D (((UINT32)(IdentifyData->AtaData.logic_= sector_size_hi << 16) | IdentifyData->AtaData.logic_sector_size_lo) * sizeo= f (UINT16)); } } -- 2.36.1.windows.1 --gOEmlOfrLzIcjANl3Rof Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable
Line number 1348 does contain a typecast with UINT32, but it is after<= /div>
all the operations (16-bit left shift followed by OR'ing) are over.
To avoid any SIGN_EXTENSION, typecast the intermediate result after
16-bit left shift operation immediately with UINT32.
 
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D4204
Signed-off-by: Ranbir Singh <Ranbir.Singh3@Dell.com>
---
 MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.c | 2 +-<= /div>
 1 file changed, 1 insertion(+), 1 deletion(-)
 
diff --git a/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.c = b/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.c
index 1070516b35..cbe6bee2ab 100644
--- a/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.c
+++ b/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.c
@@ -1345,7 +1345,7 @@ AtaPassThruPassThru (
     // Check logical block size
     //
     if ((IdentifyData->AtaData.phy_logic_sector_sup= port & BIT12) !=3D 0) {
-      BlockSize =3D (UINT32)(((IdentifyData->AtaDat= a.logic_sector_size_hi << 16) | IdentifyData->AtaData.logic_sector= _size_lo) * sizeof (UINT16));
+      BlockSize =3D (((UINT32)(IdentifyData->AtaDat= a.logic_sector_size_hi << 16) | IdentifyData->AtaData.logic_sector= _size_lo) * sizeof (UINT16));
     }
   }
 
--
2.36.1.windows.1
--gOEmlOfrLzIcjANl3Rof--