From 66329d53bde5febe55cb1e8d3352ff94d3773277 Mon Sep 17 00:00:00 2001 From: Hao Wu Date: Wed, 3 Jan 2018 19:30:36 +0800 Subject: [PATCH] BaseTools/C/Common: Fix potential null pointer dereference Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Hao Wu Reviewed-by: Yonghong Zhu Reviewed-by: Liming Gao --- BaseTools/Source/C/Common/PcdValueCommon.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/BaseTools/Source/C/Common/PcdValueCommon.c b/BaseTools/Source/C/Common/PcdValueCommon.c index 348f148ff9..32963e6c67 100644 --- a/BaseTools/Source/C/Common/PcdValueCommon.c +++ b/BaseTools/Source/C/Common/PcdValueCommon.c @@ -72,6 +72,9 @@ Returns: CHAR8 *Token; Token = malloc (TokenEnd - TokenStart + 1); + if (Token == NULL) { + return; + } memcpy (Token, &FileBuffer[TokenStart], TokenEnd - TokenStart); Token[TokenEnd - TokenStart] = 0; switch (TokenIndex) { @@ -333,6 +336,10 @@ Returns: Value = End + 1; } Buffer = malloc(*Size); + if (Buffer == NULL) { + *Size = 0; + return NULL; + } Value = &PcdList[Index].Value[1]; for (*Size = 0, Buffer[*Size] = (UINT8) strtoul(Value, &End, 16); Value != End; *Size = *Size + 1, Buffer[*Size] = (UINT8) strtoul(Value, &End, 16)) { Value = End + 1;