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>
\r
Status = FvFsReadFile (File->Instance->FvProtocol, File->FvFileInfo, &FileSize, &FileBuffer);\r
if (EFI_ERROR (Status)) {\r
\r
Status = FvFsReadFile (File->Instance->FvProtocol, File->FvFileInfo, &FileSize, &FileBuffer);\r
if (EFI_ERROR (Status)) {\r
+ FreePool (FileBuffer);\r
return EFI_DEVICE_ERROR;\r
}\r
\r
return EFI_DEVICE_ERROR;\r
}\r
\r
CopyMem (Buffer, (UINT8*)FileBuffer + File->Position, *BufferSize);\r
File->Position += *BufferSize;\r
\r
CopyMem (Buffer, (UINT8*)FileBuffer + File->Position, *BufferSize);\r
File->Position += *BufferSize;\r
\r
+ FreePool (FileBuffer);\r
+\r
return EFI_SUCCESS;\r
}\r
}\r
return EFI_SUCCESS;\r
}\r
}\r