diff options
author | Hao Wu <hao.a.wu@intel.com> | 2016-10-11 15:50:10 +0800 |
---|---|---|
committer | Hao Wu <hao.a.wu@intel.com> | 2016-11-08 16:38:05 +0800 |
commit | 181c95593741b0d10e1cf52f21d2c86669900369 (patch) | |
tree | cf1b6ab68d47c59940959da1e9b20bb198181459 /BaseTools | |
parent | 320ba37a567c91b716d7fd8c33e28681e00ee84e (diff) | |
download | edk2-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.c | 13 |
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);
|