From 85006654944a0f9e64974f23705beb7bc4906bcc Mon Sep 17 00:00:00 2001 From: Hao Wu Date: Tue, 11 Oct 2016 15:27:55 +0800 Subject: [PATCH] BaseTools/VolInfo: Fix potential memory leak Cc: Liming Gao Cc: Yonghong Zhu Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Hao Wu Reviewed-by: Liming Gao --- BaseTools/Source/C/VolInfo/VolInfo.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/BaseTools/Source/C/VolInfo/VolInfo.c b/BaseTools/Source/C/VolInfo/VolInfo.c index 5da658298e..312d33221b 100644 --- a/BaseTools/Source/C/VolInfo/VolInfo.c +++ b/BaseTools/Source/C/VolInfo/VolInfo.c @@ -258,6 +258,14 @@ Returns: continue; } if ((stricmp (argv[0], "--hash") == 0)) { + if (EnableHash == TRUE) { + // + // --hash already given in the option, ignore this one + // + argc --; + argv ++; + continue; + } EnableHash = TRUE; OpenSslCommand = "openssl"; OpenSslEnv = getenv("OPENSSL_PATH"); @@ -1784,8 +1792,14 @@ Returns: } ScratchBuffer = malloc (ScratchSize); + if (ScratchBuffer == NULL) { + Error (NULL, 0, 4001, "Resource", "memory cannot be allocated!"); + return EFI_OUT_OF_RESOURCES; + } UncompressedBuffer = malloc (UncompressedLength); - if ((ScratchBuffer == NULL) || (UncompressedBuffer == NULL)) { + if (UncompressedBuffer == NULL) { + free (ScratchBuffer); + Error (NULL, 0, 4001, "Resource", "memory cannot be allocated!"); return EFI_OUT_OF_RESOURCES; } Status = DecompressFunction ( -- 2.39.2