summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjcarsey <jcarsey@6f19259b-4bc3-4df7-8a09-765794883524>2011-11-29 15:37:04 +0000
committerjcarsey <jcarsey@6f19259b-4bc3-4df7-8a09-765794883524>2011-11-29 15:37:04 +0000
commit2e5c97edcd06f12034af3bf6684c63a2d8275315 (patch)
tree83f302881b7365d52da99f6d0926a0a03f6cbb12
parentf7fe94abe8087647a824653395645eddc6035d61 (diff)
downloadedk2-platforms-2e5c97edcd06f12034af3bf6684c63a2d8275315.tar.xz
ShellPkg: Fix handling of empty files in Hexedit
Currently hexedit thinks all files that are non-existent (i.e. new) or empty must be a memory error since the pointer is checked, but the file size is not referenced. Signed-off-by: jcarsey Reviewed-by: jljusten git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12797 6f19259b-4bc3-4df7-8a09-765794883524
-rw-r--r--ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/FileImage.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/FileImage.c b/ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/FileImage.c
index ff3819c6c6..ccf5406645 100644
--- a/ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/FileImage.c
+++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/FileImage.c
@@ -169,7 +169,10 @@ HFileImageRead (
// you should set the status string
//
Status = ReadFileIntoBuffer (FileName, (VOID**)&Buffer, &HFileImage.Size, &HFileImage.ReadOnly);
- if (EFI_ERROR(Status) || Buffer == NULL) {
+ //
+ // NULL pointer is only also a failure for a non-zero file size.
+ //
+ if ((EFI_ERROR(Status)) || (Buffer == NULL && HFileImage.Size != 0)) {
UnicodeBuffer = CatSPrint(NULL, L"Read error on file &s: %r", FileName, Status);
if (UnicodeBuffer == NULL) {
SHELL_FREE_NON_NULL(Buffer);