]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Disk/PartitionDxe/Udf.c
MdeModulePkg/PartitionDxe: don't divide 64-bit values with C operators
[mirror_edk2.git] / MdeModulePkg / Universal / Disk / PartitionDxe / Udf.c
index 3174ab2b4bdbdf68b8545008cc2bc59182e81d9a..e46cf1d4f49c080c991b88f3f800934ad1a58f8f 100644 (file)
@@ -243,6 +243,7 @@ PartitionInstallUdfChildHandles (
   IN  EFI_DEVICE_PATH_PROTOCOL     *DevicePath\r
   )\r
 {\r
+  UINT32                       RemainderByMediaBlockSize;\r
   EFI_STATUS                   Status;\r
   EFI_BLOCK_IO_MEDIA           *Media;\r
   EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode;\r
@@ -255,7 +256,12 @@ PartitionInstallUdfChildHandles (
   //\r
   // Check if UDF logical block size is multiple of underlying device block size\r
   //\r
-  if ((UDF_LOGICAL_SECTOR_SIZE % Media->BlockSize) != 0 ||\r
+  DivU64x32Remainder (\r
+    UDF_LOGICAL_SECTOR_SIZE,   // Dividend\r
+    Media->BlockSize,          // Divisor\r
+    &RemainderByMediaBlockSize // Remainder\r
+    );\r
+  if (RemainderByMediaBlockSize != 0 ||\r
       Media->BlockSize > UDF_LOGICAL_SECTOR_SIZE) {\r
     return EFI_NOT_FOUND;\r
   }\r