[bitbake-devel] [PATCH 11/16] data_smart: Improve override recursion handling
Richard Purdie
richard.purdie at linuxfoundation.org
Wed Jul 8 14:59:05 UTC 2015
When expanding OVERRIDES, its possible someone might try and override a variable
that is used in OVERRIDES. This could lead to infinite recursion. Add in
guards against this.
Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
lib/bb/data_smart.py | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/lib/bb/data_smart.py b/lib/bb/data_smart.py
index c800a9a..c91b51f 100644
--- a/lib/bb/data_smart.py
+++ b/lib/bb/data_smart.py
@@ -313,6 +313,7 @@ class DataSmart(MutableMapping):
self.overridedata = {}
self.overrides = None
self.overridevars = set(["OVERRIDES", "FILE"])
+ self.inoverride = False
def enableTracking(self):
self._tracking = True
@@ -363,8 +364,13 @@ class DataSmart(MutableMapping):
def need_overrides(self):
if self.overrides is None:
+ if self.inoverride:
+ return
+ self.inoverride = True
+ # Can end up here recursively so setup dummy values
self.overrides = []
self.overrides = (self.getVar("OVERRIDES", True) or "").split(":") or []
+ self.inoverride = False
self.expand_cache = {}
def initVar(self, var):
--
2.1.0
More information about the bitbake-devel
mailing list