Hi,

On 9/12/2017 6:39 AM, Zeng, Star wrote:
There is change(type cast to INT64) below in this patch. After check, we found the " if 
(Offset < 0) " should be always false comparison as Offset is UINT64 type.
I have suggested Dandan to remove this change(type case to INT64) at v3 patch 
series https://lists.01.org/pipermail/edk2-devel/2017-September/014523.html.
Could you help check and fix the code appropriately?
            if (Offset < 0) {
-            Offset = -(Offset);
+            Offset = - (INT64) (Offset);
            }

Oh, nice catch! I'll send a patch that fixes it and do some sanity checks later.

Thank you all! Really appreciate it.

Paulo



Thanks,
Star
-----Original Message-----
From: Bi, Dandan
Sent: Monday, September 11, 2017 2:17 PM
To: [email protected]
Cc: Dong, Eric <[email protected]>; Paulo Alcantara <[email protected]>; Ni, Ruiyu 
<[email protected]>; Zeng, Star <[email protected]>
Subject: [PATCH v2 3/3] MdeModulePkg/UdfDxe: Add type cast to fix build failure 
in VS tools

Cc: Eric Dong <[email protected]>
Cc: Paulo Alcantara <[email protected]>
Cc: Ruiyu Ni <[email protected]>
Cc: Star Zeng <[email protected]>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Dandan Bi <[email protected]>
---
  .../Universal/Disk/UdfDxe/FileSystemOperations.c       | 18 +++++++++---------
  1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c 
b/MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c
index ea3f5fb..bf33ae4 100644
--- a/MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c
+++ b/MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c
@@ -477,11 +477,11 @@ DuplicateFid (
    OUT  UDF_FILE_IDENTIFIER_DESCRIPTOR  **NewFileIdentifierDesc
    )
  {
    *NewFileIdentifierDesc =
      (UDF_FILE_IDENTIFIER_DESCRIPTOR *)AllocateCopyPool (
-      GetFidDescriptorLength (FileIdentifierDesc), FileIdentifierDesc);
+      (UINTN) GetFidDescriptorLength (FileIdentifierDesc), FileIdentifierDesc);
  }
//
  // Duplicate either a given File Entry or a given Extended File Entry.
  //
@@ -814,20 +814,20 @@ GetAedAdsData (
    }
//
    // Allocate buffer to read in AED's data.
    //
-  *Data = AllocatePool (*Length);
+  *Data = AllocatePool ((UINTN) (*Length));
    if (*Data == NULL) {
      return EFI_OUT_OF_RESOURCES;
    }
return DiskIo->ReadDisk (
      DiskIo,
      BlockIo->Media->MediaId,
      Offset,
-    *Length,
+    (UINTN) (*Length),
      *Data
      );
  }
//
@@ -849,11 +849,11 @@ GrowUpBufferToNextAd (
      *Buffer = AllocatePool (ExtentLength);
      if (*Buffer == NULL) {
        return EFI_OUT_OF_RESOURCES;
      }
    } else {
-    *Buffer = ReallocatePool (Length, Length + ExtentLength, *Buffer);
+    *Buffer = ReallocatePool ((UINTN) Length, (UINTN) (Length + ExtentLength), 
*Buffer);
      if (*Buffer == NULL) {
        return EFI_OUT_OF_RESOURCES;
      }
    }
@@ -938,29 +938,29 @@ ReadFile (
        ReadFileInfo->ReadLength = Length;
      } else if (ReadFileInfo->Flags == READ_FILE_ALLOCATE_AND_READ) {
        //
        // Allocate buffer for starting read data.
        //
-      ReadFileInfo->FileData = AllocatePool (Length);
+      ReadFileInfo->FileData = AllocatePool ((UINTN) Length);
        if (ReadFileInfo->FileData == NULL) {
          return EFI_OUT_OF_RESOURCES;
        }
//
        // Read all inline data into ReadFileInfo->FileData
        //
-      CopyMem (ReadFileInfo->FileData, Data, Length);
+      CopyMem (ReadFileInfo->FileData, Data, (UINTN) Length);
        ReadFileInfo->ReadLength = Length;
      } else if (ReadFileInfo->Flags == READ_FILE_SEEK_AND_READ) {
        //
        // If FilePosition is non-zero, seek file to FilePosition, read
        // FileDataSize bytes and then updates FilePosition.
        //
        CopyMem (
          ReadFileInfo->FileData,
          (VOID *)((UINT8 *)Data + ReadFileInfo->FilePosition),
-        ReadFileInfo->FileDataSize
+        (UINTN) ReadFileInfo->FileDataSize
          );
ReadFileInfo->FilePosition += ReadFileInfo->FileDataSize;
      } else {
        ASSERT (FALSE);
@@ -1081,11 +1081,11 @@ ReadFile (
          }
if (FilePosition + ExtentLength > ReadFileInfo->FilePosition) {
            Offset = ReadFileInfo->FilePosition - FilePosition;
            if (Offset < 0) {
-            Offset = -(Offset);
+            Offset = - (INT64) (Offset);
            }
          } else {
            Offset = 0;
          }
@@ -1109,11 +1109,11 @@ ReadFile (
          //
          Status = DiskIo->ReadDisk (
            DiskIo,
            BlockIo->Media->MediaId,
            Offset + MultU64x32 (Lsn, LogicalBlockSize),
-          DataLength,
+          (UINTN) DataLength,
            (VOID *)((UINT8 *)ReadFileInfo->FileData +
                     DataOffset)
            );
          if (EFI_ERROR (Status)) {
            goto Error_Read_Disk_Blk;

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to