summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/fetch2
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 09:24:22 +0100
commit2a167cb1fe28b7141ab848aafb7b54af9cec282b (patch)
tree8bf280d34669623e0e5d05faafb64ac82dd6c6da /bitbake/lib/bb/fetch2
parentf24d8df3af52e2a2911233746ad69f8899bbdf93 (diff)
downloadpoky-2a167cb1fe28b7141ab848aafb7b54af9cec282b.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. (Bitbake rev: 9ad1cebe2220b41da2141cdb3f0a403abb46d77c) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/fetch2')
-rw-r--r--bitbake/lib/bb/fetch2/__init__.py6
1 files changed, 2 insertions, 4 deletions
diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py
index 670afb1eed..5d7ef1f014 100644
--- a/bitbake/lib/bb/fetch2/__init__.py
+++ b/bitbake/lib/bb/fetch2/__init__.py
@@ -507,8 +507,7 @@ def try_mirrors(d, origud, mirrors, check = False):
507 logger.debug(1, "Mirror fetch failure for url %s (original url: %s)" % (newuri, origud.url)) 507 logger.debug(1, "Mirror fetch failure for url %s (original url: %s)" % (newuri, origud.url))
508 logger.debug(1, str(e)) 508 logger.debug(1, str(e))
509 try: 509 try:
510 if os.path.isfile(ud.localpath): 510 ud.method.clean(ud, ld)
511 bb.utils.remove(ud.localpath)
512 except UnboundLocalError: 511 except UnboundLocalError:
513 pass 512 pass
514 continue 513 continue
@@ -984,8 +983,7 @@ class Fetch(object):
984 logger.debug(1, str(e)) 983 logger.debug(1, str(e))
985 firsterr = e 984 firsterr = e
986 # Remove any incomplete fetch 985 # Remove any incomplete fetch
987 if os.path.isfile(ud.localpath): 986 m.clean(ud, self.d)
988 bb.utils.remove(ud.localpath)
989 logger.debug(1, "Trying MIRRORS") 987 logger.debug(1, "Trying MIRRORS")
990 mirrors = mirror_from_string(self.d.getVar('MIRRORS', True)) 988 mirrors = mirror_from_string(self.d.getVar('MIRRORS', True))
991 localpath = try_mirrors (self.d, ud, mirrors) 989 localpath = try_mirrors (self.d, ud, mirrors)