bitbake: data_smart: Improve override recursion handling
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. (Bitbake rev: 07d773369f571028c2cf82dd1f65d9731af6d00e) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
2dbb067eba
commit
0ac9c80e08
|
@ -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):
|
||||
|
|
Loading…
Reference in New Issue