From f2f4c6be2dba3f8e97ac544b9c3da71e9f81b294 Mon Sep 17 00:00:00 2001 From: Michael D Kinney Date: Tue, 20 Apr 2021 10:28:12 -0700 Subject: BaseTools/Source/Python: Verify TAB_TOD_DEFINES_FAMILY key present REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3344 Veify that TAB_TOD_DEFINES_FAMILY key is present in ToolDef dictionary before access. Cc: Bob Feng Cc: Liming Gao Cc: Yuwei Chen Signed-off-by: Michael D Kinney Reviewed-by: Bob Feng --- BaseTools/Source/Python/AutoGen/ModuleAutoGenHelper.py | 11 ++++++++--- BaseTools/Source/Python/AutoGen/PlatformAutoGen.py | 9 +++++++-- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/BaseTools/Source/Python/AutoGen/ModuleAutoGenHelper.py b/BaseTools/Source/Python/AutoGen/ModuleAutoGenHelper.py index 8e60643d1f..7477b1d77f 100644 --- a/BaseTools/Source/Python/AutoGen/ModuleAutoGenHelper.py +++ b/BaseTools/Source/Python/AutoGen/ModuleAutoGenHelper.py @@ -1,7 +1,7 @@ ## @file # Create makefile for MS nmake and GNU make # -# Copyright (c) 2019, Intel Corporation. All rights reserved.
+# Copyright (c) 2019 - 2021, Intel Corporation. All rights reserved.
# SPDX-License-Identifier: BSD-2-Clause-Patent # from __future__ import absolute_import @@ -178,8 +178,11 @@ class AutoGenInfo(object): if ToolDef[Tool].get(TAB_TOD_DEFINES_BUILDRULEFAMILY, "") != "": if Family != ToolDef[Tool][TAB_TOD_DEFINES_BUILDRULEFAMILY]: continue - elif Family != ToolDef[Tool][TAB_TOD_DEFINES_FAMILY]: - continue + else: + if ToolDef[Tool].get(TAB_TOD_DEFINES_FAMILY, "") == "": + continue + if Family != ToolDef[Tool][TAB_TOD_DEFINES_FAMILY]: + continue FamilyMatch = True # expand any wildcard if Target == TAB_STAR or Target == self.BuildTarget: @@ -213,6 +216,8 @@ class AutoGenInfo(object): if Tool not in ToolDef or Family == "": continue # option has been added before + if TAB_TOD_DEFINES_FAMILY not in ToolDef[Tool]: + continue if Family != ToolDef[Tool][TAB_TOD_DEFINES_FAMILY]: continue diff --git a/BaseTools/Source/Python/AutoGen/PlatformAutoGen.py b/BaseTools/Source/Python/AutoGen/PlatformAutoGen.py index c16f2e4cd8..e2ef325677 100644 --- a/BaseTools/Source/Python/AutoGen/PlatformAutoGen.py +++ b/BaseTools/Source/Python/AutoGen/PlatformAutoGen.py @@ -1474,8 +1474,11 @@ class PlatformAutoGen(AutoGen): if ToolDef[Tool].get(TAB_TOD_DEFINES_BUILDRULEFAMILY, "") != "": if Family != ToolDef[Tool][TAB_TOD_DEFINES_BUILDRULEFAMILY]: continue - elif Family != ToolDef[Tool][TAB_TOD_DEFINES_FAMILY]: - continue + else: + if ToolDef[Tool].get(TAB_TOD_DEFINES_FAMILY, "") == "": + continue + if Family != ToolDef[Tool][TAB_TOD_DEFINES_FAMILY]: + continue FamilyMatch = True # expand any wildcard if Target == TAB_STAR or Target == self.BuildTarget: @@ -1509,6 +1512,8 @@ class PlatformAutoGen(AutoGen): if Tool not in ToolDef or Family == "": continue # option has been added before + if TAB_TOD_DEFINES_FAMILY not in ToolDef[Tool]: + continue if Family != ToolDef[Tool][TAB_TOD_DEFINES_FAMILY]: continue -- cgit v1.2.3