diff options
author | Jiaxin Wu <jiaxin.wu@intel.com> | 2018-04-26 14:13:57 +0800 |
---|---|---|
committer | Jiaxin Wu <Jiaxin.wu@intel.com> | 2018-07-13 13:45:04 +0800 |
commit | 280f49b81170aee9176a47085b168ff3bc9fd3e7 (patch) | |
tree | 6ed14b51ca4d4be66c194c48701297fb1e4eee2c /ShellPkg/DynamicCommand | |
parent | 0c6f94dae5e3ca57fe6093ce2fa4d78fdd061857 (diff) | |
download | edk2-280f49b81170aee9176a47085b168ff3bc9fd3e7.tar.gz |
ShellPkg/TftpDynamicCommand: Fix the potential assertion and memory leak issue.
This patch is to fix the issue reported from
https://bugzilla.tianocore.org/show_bug.cgi?id=925.
DataSize variable was not assigned the value if ShellOpenFileByName returns error.
In the such a case, it should not be used to FreePages. Instead, DataSize can be
used to record the file size once DownloadFile successfully.
Cc: Ye Ting <ting.ye@intel.com>
Cc: Fu Siyuan <siyuan.fu@intel.com>
Cc: Jaben Carsey <jaben.carsey@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Wu Jiaxin <jiaxin.wu@intel.com>
Reviewed-by: Fu Siyuan <siyuan.fu@intel.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
Diffstat (limited to 'ShellPkg/DynamicCommand')
-rw-r--r-- | ShellPkg/DynamicCommand/TftpDynamicCommand/Tftp.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/ShellPkg/DynamicCommand/TftpDynamicCommand/Tftp.c b/ShellPkg/DynamicCommand/TftpDynamicCommand/Tftp.c index e2491cd54c..44be6d4e76 100644 --- a/ShellPkg/DynamicCommand/TftpDynamicCommand/Tftp.c +++ b/ShellPkg/DynamicCommand/TftpDynamicCommand/Tftp.c @@ -519,6 +519,8 @@ RunTftp ( goto NextHandle;
}
+ DataSize = FileSize;
+
if (!EFI_ERROR (ShellFileExists (LocalFilePath))) {
ShellDeleteFileByName (LocalFilePath);
}
@@ -539,7 +541,6 @@ RunTftp ( goto NextHandle;
}
- DataSize = FileSize;
Status = ShellWriteFile (FileHandle, &FileSize, Data);
if (!EFI_ERROR (Status)) {
ShellStatus = SHELL_SUCCESS;
|