summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVladimir Olovyannikov <vladimir.olovyannikov@broadcom.com>2018-07-26 03:47:49 +0800
committerStar Zeng <star.zeng@intel.com>2018-07-27 08:54:40 +0800
commitb5bd3ed64898db1088a9468446a0d2d0dc7185e8 (patch)
tree708c1824a3186d51f2e52f5e826893ffc5e903b9
parent4a723ed258367471eac8b4ae32558f09ef65672e (diff)
downloadedk2-b5bd3ed64898db1088a9468446a0d2d0dc7185e8.tar.gz
edk2-b5bd3ed64898db1088a9468446a0d2d0dc7185e8.tar.bz2
edk2-b5bd3ed64898db1088a9468446a0d2d0dc7185e8.zip
MdeModulePkg FvSimpleFileSystemDxe: Fix memory leak in Read function
FvSimpleFileSystem on read always allocates a FileBuffer, and never frees it. This causes memory leaks. It is especially bad for reading scripts line-by-line. In some cases memory leak can exceed 1GB. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Vladimir Olovyannikiov <vladimir.olovyannikov@broadcom.com> Reviewed-by: Star Zeng <star.zeng@intel.com>
-rw-r--r--MdeModulePkg/Universal/FvSimpleFileSystemDxe/FvSimpleFileSystem.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/MdeModulePkg/Universal/FvSimpleFileSystemDxe/FvSimpleFileSystem.c b/MdeModulePkg/Universal/FvSimpleFileSystemDxe/FvSimpleFileSystem.c
index 746f2ced70..fde2085947 100644
--- a/MdeModulePkg/Universal/FvSimpleFileSystemDxe/FvSimpleFileSystem.c
+++ b/MdeModulePkg/Universal/FvSimpleFileSystemDxe/FvSimpleFileSystem.c
@@ -704,6 +704,7 @@ FvSimpleFileSystemRead (
Status = FvFsReadFile (File->Instance->FvProtocol, File->FvFileInfo, &FileSize, &FileBuffer);
if (EFI_ERROR (Status)) {
+ FreePool (FileBuffer);
return EFI_DEVICE_ERROR;
}
@@ -714,6 +715,8 @@ FvSimpleFileSystemRead (
CopyMem (Buffer, (UINT8*)FileBuffer + File->Position, *BufferSize);
File->Position += *BufferSize;
+ FreePool (FileBuffer);
+
return EFI_SUCCESS;
}
}