summaryrefslogtreecommitdiff
path: root/BaseTools
diff options
context:
space:
mode:
authorHao Wu <hao.a.wu@intel.com>2016-10-11 15:18:32 +0800
committerHao Wu <hao.a.wu@intel.com>2016-11-08 16:37:41 +0800
commit399caf2d14b4e933fc1f0050f29d290359ba3614 (patch)
tree1cb205f651668e0edade1d3571f9572268629bd0 /BaseTools
parent77e4cf5f11ed4543cbd91a9c45c7209e36bfd97a (diff)
downloadedk2-platforms-399caf2d14b4e933fc1f0050f29d290359ba3614.tar.xz
BaseTools/GenVtf: 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/GenVtf/GenVtf.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/BaseTools/Source/C/GenVtf/GenVtf.c b/BaseTools/Source/C/GenVtf/GenVtf.c
index 006822a79b..a61502f315 100644
--- a/BaseTools/Source/C/GenVtf/GenVtf.c
+++ b/BaseTools/Source/C/GenVtf/GenVtf.c
@@ -1232,11 +1232,13 @@ Returns:
Vtf1TotalSize += (UINT32) (FileSize + NumAdjustByte);
Status = UpdateVtfBuffer (CompStartAddress, Buffer, FileSize, FIRST_VTF);
} else {
+ free (Buffer);
Error (NULL, 0, 2000,"Invalid Parameter", "There's component in second VTF so second BaseAddress and Size must be specified!");
return EFI_INVALID_PARAMETER;
}
if (EFI_ERROR (Status)) {
+ free (Buffer);
return EFI_ABORTED;
}
@@ -1248,6 +1250,7 @@ Returns:
CompFitPtr->CompAddress = CompStartAddress | IPF_CACHE_BIT;
if ((FileSize % 16) != 0) {
+ free (Buffer);
Error (NULL, 0, 2000, "Invalid parameter", "Binary FileSize must be a multiple of 16.");
return EFI_INVALID_PARAMETER;
}
@@ -1389,6 +1392,7 @@ Returns:
PalFitPtr->CompAddress = PalStartAddress | IPF_CACHE_BIT;
//assert ((FileSize % 16) == 0);
if ((FileSize % 16) != 0) {
+ free (Buffer);
Error (NULL, 0, 2000, "Invalid parameter", "Binary FileSize must be a multiple of 16.");
return EFI_INVALID_PARAMETER;
}