summaryrefslogtreecommitdiffstats
path: root/MdeModulePkg/Application
diff options
context:
space:
mode:
authorStar Zeng <star.zeng@intel.com>2018-04-26 17:16:47 +0800
committerStar Zeng <star.zeng@intel.com>2018-05-08 11:16:49 +0800
commit2e3032b4aae427fded0d7b4e5fefcd13f6576bbc (patch)
tree1d6584e7d8edabba481980355f62f8936fd283b2 /MdeModulePkg/Application
parent053cd183c9f25929f056239a173e0106b2322d17 (diff)
downloadedk2-2e3032b4aae427fded0d7b4e5fefcd13f6576bbc.tar.gz
edk2-2e3032b4aae427fded0d7b4e5fefcd13f6576bbc.tar.bz2
edk2-2e3032b4aae427fded0d7b4e5fefcd13f6576bbc.zip
MdeModulePkg CapsuleApp: Check Buffer against NULL before freeing it
If the capsule from command line is not present, Buffer will be random value when freeing it in DumpCapsule(), then ASSERT will happen or other memory pool may be freed. Cc: Jiewen Yao <jiewen.yao@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Star Zeng <star.zeng@intel.com> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
Diffstat (limited to 'MdeModulePkg/Application')
-rw-r--r--MdeModulePkg/Application/CapsuleApp/CapsuleDump.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/MdeModulePkg/Application/CapsuleApp/CapsuleDump.c b/MdeModulePkg/Application/CapsuleApp/CapsuleDump.c
index 2bb5f1f02c..6c1320942b 100644
--- a/MdeModulePkg/Application/CapsuleApp/CapsuleDump.c
+++ b/MdeModulePkg/Application/CapsuleApp/CapsuleDump.c
@@ -1,7 +1,7 @@
/** @file
Dump Capsule image information.
- Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2016 - 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@@ -242,6 +242,7 @@ DumpCapsule (
EFI_CAPSULE_HEADER *CapsuleHeader;
EFI_STATUS Status;
+ Buffer = NULL;
Status = ReadFileToBuffer(CapsuleName, &FileSize, &Buffer);
if (EFI_ERROR(Status)) {
Print(L"CapsuleApp: Capsule (%s) is not found.\n", CapsuleName);
@@ -269,7 +270,9 @@ DumpCapsule (
}
Done:
- FreePool(Buffer);
+ if (Buffer != NULL) {
+ FreePool(Buffer);
+ }
return Status;
}