summaryrefslogtreecommitdiffstats
path: root/pym/portage_util.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-04-02 18:13:08 +0000
committerZac Medico <zmedico@gentoo.org>2008-04-02 18:13:08 +0000
commite92fe2aa4c8c3291dc79aaf7a891339bbdab9c1c (patch)
tree2b4ab0726bb027ada8bcd1fd44d3b54ddac0a573 /pym/portage_util.py
parentaa45795583bdb772f7ba5808ca76fed12f474ea7 (diff)
downloadportage-e92fe2aa4c8c3291dc79aaf7a891339bbdab9c1c.tar.gz
portage-e92fe2aa4c8c3291dc79aaf7a891339bbdab9c1c.tar.bz2
portage-e92fe2aa4c8c3291dc79aaf7a891339bbdab9c1c.zip
Handle a potential FileNotFound exception in new_protect_filename() when
the last ._cfg* file happens to be a broken symlink. Thanks to bonsaikitten for reporting. (trunk r9676:9678) svn path=/main/branches/2.1.2/; revision=9679
Diffstat (limited to 'pym/portage_util.py')
-rw-r--r--pym/portage_util.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/pym/portage_util.py b/pym/portage_util.py
index bad313bdc..eb54076d4 100644
--- a/pym/portage_util.py
+++ b/pym/portage_util.py
@@ -1058,7 +1058,12 @@ def new_protect_filename(mydest, newmd5=None):
old_pfile = normalize_path(os.path.join(real_dirname, last_pfile))
if last_pfile and newmd5:
import portage_checksum
- if portage_checksum.perform_md5(
- os.path.join(real_dirname, last_pfile)) == newmd5:
- return old_pfile
+ try:
+ last_pfile_md5 = portage_checksum.perform_md5(old_pfile)
+ except FileNotFound:
+ # The file suddenly disappeared or it's a broken symlink.
+ pass
+ else:
+ if last_pfile_md5 == newmd5:
+ return old_pfile
return new_pfile