]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Bus/Pci/IdeBusPei/AtapiPeim.c
MdeModulePkg/IdeBusPei: Fix undefined behavior in signed left shift
[mirror_edk2.git] / MdeModulePkg / Bus / Pci / IdeBusPei / AtapiPeim.c
index b1ab34d5974335fe8d29edfc3f1dd183724a70f8..58bef161fb37e8a2228aa1c41394d1f167b7f0c6 100644 (file)
@@ -2140,7 +2140,7 @@ ReadCapacity (
 \r
     if (MediaInfo->DeviceType == IdeCDROM) {\r
 \r
-      MediaInfo->LastBlock    = (Data.LastLba3 << 24) | (Data.LastLba2 << 16) | (Data.LastLba1 << 8) | Data.LastLba0;\r
+      MediaInfo->LastBlock    = ((UINT32) Data.LastLba3 << 24) | (Data.LastLba2 << 16) | (Data.LastLba1 << 8) | Data.LastLba0;\r
       MediaInfo->MediaPresent = TRUE;\r
       //\r
       // Because the user data portion in the sector of the Data CD supported\r
@@ -2161,7 +2161,7 @@ ReadCapacity (
         MediaInfo2->MediaPresent = FALSE;\r
         MediaInfo2->LastBlock    = 0;\r
       } else {\r
-        MediaInfo->LastBlock = (FormatData.LastLba3 << 24) |\r
+        MediaInfo->LastBlock = ((UINT32) FormatData.LastLba3 << 24) |\r
           (FormatData.LastLba2 << 16) |\r
           (FormatData.LastLba1 << 8) |\r
           FormatData.LastLba0;\r