Revision: 14448
http://sourceforge.net/p/edk2/code/14448
Author: jcarsey
Date: 2013-06-28 22:44:21 +0000 (Fri, 28 Jun 2013)
Log Message:
-----------
ShellPkg: Verify memory and handle allocation failure.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: jaben carsey <[email protected]>
Reviewed-by: Eric Dong <[email protected]>
Modified Paths:
--------------
trunk/edk2/ShellPkg/Library/UefiShellLevel2CommandsLib/Rm.c
Modified: trunk/edk2/ShellPkg/Library/UefiShellLevel2CommandsLib/Rm.c
===================================================================
--- trunk/edk2/ShellPkg/Library/UefiShellLevel2CommandsLib/Rm.c 2013-06-27
18:18:24 UTC (rev 14447)
+++ trunk/edk2/ShellPkg/Library/UefiShellLevel2CommandsLib/Rm.c 2013-06-28
22:44:21 UTC (rev 14448)
@@ -126,18 +126,26 @@
// Update the node filename to have full path with file system
identifier
//
TempName = AllocateZeroPool(StrSize(Node->FullName) +
StrSize(Node2->FullName));
- StrCpy(TempName, Node->FullName);
- TempName[StrStr(TempName, L":")+1-TempName] = CHAR_NULL;
- StrCat(TempName, Node2->FullName);
- FreePool((VOID*)Node2->FullName);
- Node2->FullName = TempName;
+ if (TempName == NULL) {
+ ShellStatus = EFI_OUT_OF_RESOURCES;
+ } else {
+ StrCpy(TempName, Node->FullName);
+ TempName[StrStr(TempName, L":")+1-TempName] = CHAR_NULL;
+ StrCat(TempName, Node2->FullName);
+ FreePool((VOID*)Node2->FullName);
+ Node2->FullName = TempName;
- //
- // Now try again to open the file
- //
- Node2->Status = gEfiShellProtocol->OpenFileByName (Node2->FullName,
&Node2->Handle, EFI_FILE_MODE_READ|EFI_FILE_MODE_WRITE);
+ //
+ // Now try again to open the file
+ //
+ Node2->Status = gEfiShellProtocol->OpenFileByName
(Node2->FullName, &Node2->Handle, EFI_FILE_MODE_READ|EFI_FILE_MODE_WRITE);
+ }
}
- ShellStatus = CascadeDelete(Node2, Quiet);
+ if (!EFI_ERROR(Node2->Status)) {
+ ShellStatus = CascadeDelete(Node2, Quiet);
+ } else if (ShellStatus == SHELL_SUCCESS) {
+ ShellStatus = Node2->Status;
+ }
if (ShellStatus != SHELL_SUCCESS) {
if (List!=NULL) {
gEfiShellProtocol->FreeFileList(&List);
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:
Build for Windows Store.
http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits