summaryrefslogtreecommitdiff
path: root/BaseTools
diff options
context:
space:
mode:
authorHao Wu <hao.a.wu@intel.com>2016-10-11 13:57:07 +0800
committerHao Wu <hao.a.wu@intel.com>2016-11-08 16:37:33 +0800
commit6db97871107cba3d92ec2f3b7eb350f1fff47a11 (patch)
tree0e261daa3e4cd7d9cf4af638c39ee23b8123535b /BaseTools
parentfb4ea38c46cf28d46efe82a000af9c4421b6cb39 (diff)
downloadedk2-platforms-6db97871107cba3d92ec2f3b7eb350f1fff47a11.tar.xz
BaseTools/GenFv: Fix potential memory leak
Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Hao Wu <hao.a.wu@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
Diffstat (limited to 'BaseTools')
-rw-r--r--BaseTools/Source/C/GenFv/GenFvInternalLib.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/BaseTools/Source/C/GenFv/GenFvInternalLib.c b/BaseTools/Source/C/GenFv/GenFvInternalLib.c
index d16b33eee3..bf6b40c4c4 100644
--- a/BaseTools/Source/C/GenFv/GenFvInternalLib.c
+++ b/BaseTools/Source/C/GenFv/GenFvInternalLib.c
@@ -1220,6 +1220,7 @@ Returns:
if (CompareGuid ((EFI_GUID *) FileBuffer, &mFileGuidArray [Index1]) == 0) {
Error (NULL, 0, 2000, "Invalid parameter", "the %dth file and %uth file have the same file GUID.", (unsigned) Index1 + 1, (unsigned) Index + 1);
PrintGuid ((EFI_GUID *) FileBuffer);
+ free (FileBuffer);
return EFI_INVALID_PARAMETER;
}
}
@@ -2626,7 +2627,7 @@ Returns:
//
Status = CalculateFvSize (&mFvDataInfo);
if (EFI_ERROR (Status)) {
- return Status;
+ goto Finish;
}
VerboseMsg ("the generated FV image size is %u bytes", (unsigned) mFvDataInfo.Size);
@@ -2640,7 +2641,8 @@ Returns:
//
FvBufferHeader = malloc (FvImageSize + sizeof (UINT64));
if (FvBufferHeader == NULL) {
- return EFI_OUT_OF_RESOURCES;
+ Status = EFI_OUT_OF_RESOURCES;
+ goto Finish;
}
FvImage = (UINT8 *) (((UINTN) FvBufferHeader + 7) & ~7);
@@ -2732,7 +2734,8 @@ Returns:
FvMapFile = fopen (LongFilePath (FvMapName), "w");
if (FvMapFile == NULL) {
Error (NULL, 0, 0001, "Error opening file", FvMapName);
- return EFI_ABORTED;
+ Status = EFI_ABORTED;
+ goto Finish;
}
//
@@ -2741,7 +2744,8 @@ Returns:
FvReportFile = fopen (LongFilePath (FvReportName), "w");
if (FvReportFile == NULL) {
Error (NULL, 0, 0001, "Error opening file", FvReportName);
- return EFI_ABORTED;
+ Status = EFI_ABORTED;
+ goto Finish;
}
//
// record FV size information into FvMap file.
@@ -4259,6 +4263,7 @@ Returns:
fwrite (CapBuffer, 1, CapSize, fpout);
fclose (fpout);
+ free (CapBuffer);
VerboseMsg ("The size of the generated capsule image is %u bytes", (unsigned) CapSize);