From edc93a319184294dfa2f1764baceb02f49ccdcc5 Mon Sep 17 00:00:00 2001 From: Olivier Martin Date: Tue, 1 Jul 2014 09:27:19 +0000 Subject: [PATCH] ArmPkg/BdsLib: Prevent memory leak whith TFTP In some case, the size of the downloaded TFTP image cannot be known. An arbitrary larger buffer is allocated to receive the image. We need to make sure when we free the buffer we free the size of the allocated buffer and not the size of the actual image. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Olivier Martin git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15609 6f19259b-4bc3-4df7-8a09-765794883524 --- ArmPkg/Library/BdsLib/BdsFilePath.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ArmPkg/Library/BdsLib/BdsFilePath.c b/ArmPkg/Library/BdsLib/BdsFilePath.c index f3fa445655..411fcc1fcc 100644 --- a/ArmPkg/Library/BdsLib/BdsFilePath.c +++ b/ArmPkg/Library/BdsLib/BdsFilePath.c @@ -756,6 +756,7 @@ BdsTftpLoadImage ( EFI_STATUS Status; EFI_PXE_BASE_CODE_PROTOCOL *Pxe; UINT64 TftpBufferSize; + UINT64 TftpTransferSize; EFI_IP_ADDRESS ServerIp; IPv4_DEVICE_PATH* IPv4DevicePathNode; FILEPATH_DEVICE_PATH* FilePathDevicePath; @@ -857,12 +858,13 @@ BdsTftpLoadImage ( goto EXIT; } + TftpTransferSize = TftpBufferSize; Status = Pxe->Mtftp ( Pxe, EFI_PXE_BASE_CODE_TFTP_READ_FILE, (VOID *)(UINTN)*Image, FALSE, - &TftpBufferSize, + &TftpTransferSize, NULL, &ServerIp, (UINT8*)AsciiPathName, -- 2.39.2