summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael D Kinney <michael.d.kinney@intel.com>2021-04-20 10:28:12 -0700
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2021-04-23 18:55:51 +0000
commitf2f4c6be2dba3f8e97ac544b9c3da71e9f81b294 (patch)
tree3be74d904cc6c45ead054c929fbc268627105c40
parent61680cac5e435053be89a4fc6b945466f2c7bac6 (diff)
downloadedk2-f2f4c6be2dba3f8e97ac544b9c3da71e9f81b294.tar.gz
edk2-f2f4c6be2dba3f8e97ac544b9c3da71e9f81b294.tar.bz2
edk2-f2f4c6be2dba3f8e97ac544b9c3da71e9f81b294.zip
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 <bob.c.feng@intel.com> Cc: Liming Gao <gaoliming@byosoft.com.cn> Cc: Yuwei Chen <yuwei.chen@intel.com> Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Bob Feng <bob.c.feng@intel.com>
-rw-r--r--BaseTools/Source/Python/AutoGen/ModuleAutoGenHelper.py11
-rw-r--r--BaseTools/Source/Python/AutoGen/PlatformAutoGen.py9
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.<BR>
+# Copyright (c) 2019 - 2021, Intel Corporation. All rights reserved.<BR>
# 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