From: Vladimir Olovyannikov Date: Wed, 25 Jul 2018 19:47:49 +0000 (+0800) Subject: MdeModulePkg FvSimpleFileSystemDxe: Fix memory leak in Read function X-Git-Tag: edk2-stable201903~1341 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=b5bd3ed64898db1088a9468446a0d2d0dc7185e8 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 Reviewed-by: Star Zeng --- 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; } }