summaryrefslogtreecommitdiff
path: root/BaseTools
diff options
context:
space:
mode:
authorHao Wu <hao.a.wu@intel.com>2016-10-11 15:50:10 +0800
committerHao Wu <hao.a.wu@intel.com>2016-11-08 16:38:05 +0800
commit181c95593741b0d10e1cf52f21d2c86669900369 (patch)
treecf1b6ab68d47c59940959da1e9b20bb198181459 /BaseTools
parent320ba37a567c91b716d7fd8c33e28681e00ee84e (diff)
downloadedk2-platforms-181c95593741b0d10e1cf52f21d2c86669900369.tar.xz
BaseTools/GenVtf: Fix file handles not being closed
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.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/BaseTools/Source/C/GenVtf/GenVtf.c b/BaseTools/Source/C/GenVtf/GenVtf.c
index a61502f315..c37122c853 100644
--- a/BaseTools/Source/C/GenVtf/GenVtf.c
+++ b/BaseTools/Source/C/GenVtf/GenVtf.c
@@ -1164,6 +1164,7 @@ Returns:
if (VtfInfo->PreferredSize) {
if (FileSize > VtfInfo->CompSize) {
+ fclose (Fp);
Error (NULL, 0, 2000, "Invalid parameter", "The component size is more than specified size.");
return EFI_ABORTED;
}
@@ -1173,6 +1174,7 @@ Returns:
Buffer = malloc ((UINTN) FileSize);
if (Buffer == NULL) {
+ fclose (Fp);
return EFI_OUT_OF_RESOURCES;
}
memset (Buffer, 0, (UINTN) FileSize);
@@ -1342,6 +1344,7 @@ Returns:
FileSize = _filelength (fileno (Fp));
if (FileSize < 64) {
+ fclose (Fp);
Error (NULL, 0, 2000, "Invalid parameter", "PAL_A bin header is 64 bytes, so the Bin size must be larger than 64 bytes!");
return EFI_INVALID_PARAMETER;
}
@@ -1350,6 +1353,7 @@ Returns:
if (VtfInfo->PreferredSize) {
if (FileSize > VtfInfo->CompSize) {
+ fclose (Fp);
Error (NULL, 0, 2000, "Invalid parameter", "The PAL_A Size is more than the specified size.");
return EFI_ABORTED;
}
@@ -1359,6 +1363,7 @@ Returns:
Buffer = malloc ((UINTN) FileSize);
if (Buffer == NULL) {
+ fclose (Fp);
return EFI_OUT_OF_RESOURCES;
}
memset (Buffer, 0, (UINTN) FileSize);
@@ -1775,11 +1780,13 @@ Returns:
FileSize = _filelength (fileno (Fp));
if (FileSize > 16) {
+ fclose (Fp);
return EFI_ABORTED;
}
Buffer = malloc (FileSize);
if (Buffer == NULL) {
+ fclose (Fp);
return EFI_OUT_OF_RESOURCES;
}
@@ -2548,6 +2555,12 @@ Returns:
// Get the input VTF file name
//
VtfFileName = argv[Index+1];
+ if (VtfFP != NULL) {
+ //
+ // VTF file name has been given previously, override with the new value
+ //
+ fclose (VtfFP);
+ }
VtfFP = fopen (LongFilePath (VtfFileName), "rb");
if (VtfFP == NULL) {
Error (NULL, 0, 0001, "Error opening file", VtfFileName);