diff options
author | Hao Wu <hao.a.wu@intel.com> | 2016-10-11 15:09:37 +0800 |
---|---|---|
committer | Hao Wu <hao.a.wu@intel.com> | 2016-11-08 16:37:38 +0800 |
commit | 77e4cf5f11ed4543cbd91a9c45c7209e36bfd97a (patch) | |
tree | c7592a8c9076e75667e08667dbd005f4af511f17 /BaseTools/Source/C/GenSec | |
parent | 3f63e1755149286bef02b5d84841f7d9b1dffe95 (diff) | |
download | edk2-77e4cf5f11ed4543cbd91a9c45c7209e36bfd97a.zip edk2-77e4cf5f11ed4543cbd91a9c45c7209e36bfd97a.tar.gz edk2-77e4cf5f11ed4543cbd91a9c45c7209e36bfd97a.tar.bz2 |
BaseTools/GenSec: 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/Source/C/GenSec')
-rw-r--r-- | BaseTools/Source/C/GenSec/GenSec.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/BaseTools/Source/C/GenSec/GenSec.c b/BaseTools/Source/C/GenSec/GenSec.c index 0129e4e..87d4fa8 100644 --- a/BaseTools/Source/C/GenSec/GenSec.c +++ b/BaseTools/Source/C/GenSec/GenSec.c @@ -902,6 +902,7 @@ Returns: }
if (InputLength == 0) {
+ free (FileBuffer);
Error (NULL, 0, 2000, "Invalid parameter", "the size of input file %s can't be zero", InputFileName);
return EFI_NOT_FOUND;
}
@@ -1215,7 +1216,7 @@ Returns: InputFileAlign = (UINT32 *) malloc (MAXIMUM_INPUT_FILE_NUM * sizeof (UINT32));
if (InputFileAlign == NULL) {
Error (NULL, 0, 4001, "Resource", "memory cannot be allocated!");
- return 1;
+ goto Finish;
}
memset (InputFileAlign, 1, MAXIMUM_INPUT_FILE_NUM * sizeof (UINT32));
} else if (InputFileAlignNum % MAXIMUM_INPUT_FILE_NUM == 0) {
@@ -1226,7 +1227,7 @@ Returns: if (InputFileAlign == NULL) {
Error (NULL, 0, 4001, "Resource", "memory cannot be allocated!");
- return 1;
+ goto Finish;
}
memset (&(InputFileAlign[InputFileNum]), 1, (MAXIMUM_INPUT_FILE_NUM * sizeof (UINT32)));
}
@@ -1249,7 +1250,7 @@ Returns: InputFileName = (CHAR8 **) malloc (MAXIMUM_INPUT_FILE_NUM * sizeof (CHAR8 *));
if (InputFileName == NULL) {
Error (NULL, 0, 4001, "Resource", "memory cannot be allcoated");
- return 1;
+ goto Finish;
}
memset (InputFileName, 0, (MAXIMUM_INPUT_FILE_NUM * sizeof (CHAR8 *)));
} else if (InputFileNum % MAXIMUM_INPUT_FILE_NUM == 0) {
@@ -1263,7 +1264,7 @@ Returns: if (InputFileName == NULL) {
Error (NULL, 0, 4001, "Resource", "memory cannot be allcoated");
- return 1;
+ goto Finish;
}
memset (&(InputFileName[InputFileNum]), 0, (MAXIMUM_INPUT_FILE_NUM * sizeof (CHAR8 *)));
}
|