summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2017-09-14 16:09:42 +1200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-09-21 16:48:47 +0100
commit021e0eda63bd629af56b5e1c380c5f98868f7332 (patch)
tree01bce4ef584190bc6fc045958ec87c825a961700
parentb0b36ff889715227e394c59a36326c31ea21b96b (diff)
downloadbitbake-021e0eda63bd629af56b5e1c380c5f98868f7332.tar.gz
cooker: ensure monkey-patching in collect_bbfiles() gets undone on error
In collect_bbfiles() we're monkey-patching os.listdir in order to find which directories to watch, and then undoing that when we're finished - however if an exception occurred for any reason there was nothing to ensure the latter occurred. This may not have caused any issues, but as this kind of thing really ought to be secured using try...finally just in case, so do that. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/bb/cooker.py38
1 files changed, 19 insertions, 19 deletions
diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py
index bdd911251..d254bd279 100644
--- a/lib/bb/cooker.py
+++ b/lib/bb/cooker.py
@@ -1894,25 +1894,25 @@ class CookerCollectFiles(object):
return origlistdir(d)
os.listdir = ourlistdir
-
- # Can't use set here as order is important
- newfiles = []
- for f in files:
- if os.path.isdir(f):
- dirfiles = self.find_bbfiles(f)
- for g in dirfiles:
- if g not in newfiles:
- newfiles.append(g)
- else:
- globbed = glob.glob(f)
- if not globbed and os.path.exists(f):
- globbed = [f]
- # glob gives files in order on disk. Sort to be deterministic.
- for g in sorted(globbed):
- if g not in newfiles:
- newfiles.append(g)
-
- os.listdir = origlistdir
+ try:
+ # Can't use set here as order is important
+ newfiles = []
+ for f in files:
+ if os.path.isdir(f):
+ dirfiles = self.find_bbfiles(f)
+ for g in dirfiles:
+ if g not in newfiles:
+ newfiles.append(g)
+ else:
+ globbed = glob.glob(f)
+ if not globbed and os.path.exists(f):
+ globbed = [f]
+ # glob gives files in order on disk. Sort to be deterministic.
+ for g in sorted(globbed):
+ if g not in newfiles:
+ newfiles.append(g)
+ finally:
+ os.listdir = origlistdir
bbmask = config.getVar('BBMASK')