]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c
MdeModulePkg UdfDxe: Fix VS2010/VS2012 build failure
[mirror_edk2.git] / MdeModulePkg / Universal / Disk / UdfDxe / FileSystemOperations.c
index 5c5b5e3765af95444f37ade204e2bf1910e6a76c..4609580b30160c1cf3795a1e75dc9cfba923fd56 100644 (file)
@@ -22,11 +22,18 @@ FindAnchorVolumeDescriptorPointer (
   )\r
 {\r
   EFI_STATUS  Status;\r
-  UINT32      BlockSize = BlockIo->Media->BlockSize;\r
-  EFI_LBA     EndLBA = BlockIo->Media->LastBlock;\r
-  EFI_LBA     DescriptorLBAs[] = { 256, EndLBA - 256, EndLBA, 512 };\r
+  UINT32      BlockSize;\r
+  EFI_LBA     EndLBA;\r
+  EFI_LBA     DescriptorLBAs[4];\r
   UINTN       Index;\r
 \r
+  BlockSize = BlockIo->Media->BlockSize;\r
+  EndLBA = BlockIo->Media->LastBlock;\r
+  DescriptorLBAs[0] = 256;\r
+  DescriptorLBAs[1] = EndLBA - 256;\r
+  DescriptorLBAs[2] = EndLBA;\r
+  DescriptorLBAs[3] = 512;\r
+\r
   for (Index = 0; Index < ARRAY_SIZE (DescriptorLBAs); Index++) {\r
     Status = DiskIo->ReadDisk (\r
       DiskIo,\r
@@ -886,6 +893,15 @@ ReadFile (
   LogicalBlockSize  = LV_BLOCK_SIZE (Volume, UDF_DEFAULT_LV_NUM);\r
   DoFreeAed         = FALSE;\r
 \r
+  //\r
+  // set BytesLeft to suppress incorrect compiler/analyzer warnings\r
+  //\r
+  BytesLeft = 0;\r
+  DataOffset = 0;\r
+  FilePosition = 0;\r
+  FinishedSeeking = FALSE;\r
+  Data = NULL;\r
+\r
   switch (ReadFileInfo->Flags) {\r
   case READ_FILE_GET_FILESIZE:\r
   case READ_FILE_ALLOCATE_AND_READ:\r
@@ -955,9 +971,14 @@ ReadFile (
         );\r
 \r
       ReadFileInfo->FilePosition += ReadFileInfo->FileDataSize;\r
+    } else {\r
+      ASSERT (FALSE);\r
+      return EFI_INVALID_PARAMETER;\r
     }\r
 \r
+    Status = EFI_SUCCESS;\r
     break;\r
+\r
   case LONG_ADS_SEQUENCE:\r
   case SHORT_ADS_SEQUENCE:\r
     //\r
@@ -1070,9 +1091,6 @@ ReadFile (
 \r
         if (FilePosition + ExtentLength > ReadFileInfo->FilePosition) {\r
           Offset = ReadFileInfo->FilePosition - FilePosition;\r
-          if (Offset < 0) {\r
-            Offset = -(Offset);\r
-          }\r
         } else {\r
           Offset = 0;\r
         }\r
@@ -1138,6 +1156,14 @@ ReadFile (
     ASSERT (FALSE);\r
     Status = EFI_UNSUPPORTED;\r
     break;\r
+\r
+  default:\r
+    //\r
+    // A flag value reserved by the ECMA-167 standard (3rd Edition - June\r
+    // 1997); 14.6 ICB Tag; 14.6.8 Flags (RBP 18); was found.\r
+    //\r
+    Status = EFI_UNSUPPORTED;\r
+    break;\r
   }\r
 \r
 Done:\r