summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2012-05-13 07:38:13 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-05-20 07:49:31 +0100
commit9ad1cebe2220b41da2141cdb3f0a403abb46d77c (patch)
tree72343c3d6560fee90e8a27afc36a5dd7a1d79913
parentf8bf4499549f978ce7c93bc088a66f74cd751e2c (diff)
downloadbitbake-9ad1cebe2220b41da2141cdb3f0a403abb46d77c.tar.gz
bitbake/fetch2: Remove hardcoded file removal and use clean method
Under certain circumstances, bitbake could remove files which were outside its control since it unconditionally removes ud.localpath. In the file:// case this can point at external paths. This patch converts it to use the clean() method which will remove files when its safe to do so but not in the file:// case since the file:// handler has an empty clean method. This means bitbake no longer removes files outside its control and is generally much safer. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/bb/fetch2/__init__.py6
1 files changed, 2 insertions, 4 deletions
diff --git a/lib/bb/fetch2/__init__.py b/lib/bb/fetch2/__init__.py
index 670afb1ee..5d7ef1f01 100644
--- a/lib/bb/fetch2/__init__.py
+++ b/lib/bb/fetch2/__init__.py
@@ -507,8 +507,7 @@ def try_mirrors(d, origud, mirrors, check = False):
logger.debug(1, "Mirror fetch failure for url %s (original url: %s)" % (newuri, origud.url))
logger.debug(1, str(e))
try:
- if os.path.isfile(ud.localpath):
- bb.utils.remove(ud.localpath)
+ ud.method.clean(ud, ld)
except UnboundLocalError:
pass
continue
@@ -984,8 +983,7 @@ class Fetch(object):
logger.debug(1, str(e))
firsterr = e
# Remove any incomplete fetch
- if os.path.isfile(ud.localpath):
- bb.utils.remove(ud.localpath)
+ m.clean(ud, self.d)
logger.debug(1, "Trying MIRRORS")
mirrors = mirror_from_string(self.d.getVar('MIRRORS', True))
localpath = try_mirrors (self.d, ud, mirrors)