diff options
author | Sergei Antonov <saproj@gmail.com> | 2013-09-19 17:23:10 +0000 |
---|---|---|
committer | jcarsey <jcarsey@6f19259b-4bc3-4df7-8a09-765794883524> | 2013-09-19 17:23:10 +0000 |
commit | 6b6aa6d136067a3c9199b4413cdceb652a823b80 (patch) | |
tree | 6f66f6cef0dd189bc6a29cfbefcaced62280c93b /ShellPkg | |
parent | c1d932429ef9700a2da64452546be14e92468b07 (diff) | |
download | edk2-platforms-6b6aa6d136067a3c9199b4413cdceb652a823b80.tar.xz |
ShellPkg: Handle pool allocation failure
If AllocateZeroPool() returns NULL,
GetVariable() will return EFI_BUFFER_TOO_SMALL,
FreePool() will receive NULL.
So check for NULL before FreePool().
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Sergei Antonov <saproj@gmail.com>
Reviewed-by: Jaben Carsey <Jaben.carsey@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14688 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'ShellPkg')
-rw-r--r-- | ShellPkg/Library/UefiShellDebug1CommandsLib/SetVar.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/SetVar.c b/ShellPkg/Library/UefiShellDebug1CommandsLib/SetVar.c index 8d26c9d93b..7c3aa542b4 100644 --- a/ShellPkg/Library/UefiShellDebug1CommandsLib/SetVar.c +++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/SetVar.c @@ -176,7 +176,9 @@ ShellCommandRunSetVar ( if (Status == EFI_BUFFER_TOO_SMALL) {
Buffer = AllocateZeroPool(Size);
Status = gRT->GetVariable((CHAR16*)VariableName, &Guid, &Attributes2, &Size, Buffer);
- FreePool(Buffer);
+ if (Buffer != NULL) {
+ FreePool(Buffer);
+ }
Attributes = Attributes2;
}
//
|