]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c
MdeModulePkg/UdfDxe: Avoid possible loss track of allocated buffer
[mirror_edk2.git] / MdeModulePkg / Universal / Disk / UdfDxe / FileSystemOperations.c
index e048d95d3120db85d27ef8e3e1e4117bccdffb83..ecc172303e75cbcad8e2999d8464b75648c1a334 100644 (file)
@@ -1615,12 +1615,13 @@ FindFileEntry (
   UINT64              Lsn;\r
   UINT32              LogicalBlockSize;\r
   UDF_DESCRIPTOR_TAG  *DescriptorTag;\r
+  VOID                *ReadBuffer;\r
 \r
   Lsn               = GetLongAdLsn (Volume, Icb);\r
   LogicalBlockSize  = Volume->LogicalVolDesc.LogicalBlockSize;\r
 \r
-  *FileEntry = AllocateZeroPool (Volume->FileEntrySize);\r
-  if (*FileEntry == NULL) {\r
+  ReadBuffer = AllocateZeroPool (Volume->FileEntrySize);\r
+  if (ReadBuffer == NULL) {\r
     return EFI_OUT_OF_RESOURCES;\r
   }\r
 \r
@@ -1632,13 +1633,13 @@ FindFileEntry (
     BlockIo->Media->MediaId,\r
     MultU64x32 (Lsn, LogicalBlockSize),\r
     Volume->FileEntrySize,\r
-    *FileEntry\r
+    ReadBuffer\r
     );\r
   if (EFI_ERROR (Status)) {\r
     goto Error_Read_Disk_Blk;\r
   }\r
 \r
-  DescriptorTag = *FileEntry;\r
+  DescriptorTag = ReadBuffer;\r
 \r
   //\r
   // Check if the read extent contains a valid Tag Identifier for the expected\r
@@ -1650,11 +1651,12 @@ FindFileEntry (
     goto Error_Invalid_Fe;\r
   }\r
 \r
+  *FileEntry = ReadBuffer;\r
   return EFI_SUCCESS;\r
 \r
 Error_Invalid_Fe:\r
 Error_Read_Disk_Blk:\r
-  FreePool (*FileEntry);\r
+  FreePool (ReadBuffer);\r
 \r
   return Status;\r
 }\r