diff options
author | Zac Medico <zmedico@gentoo.org> | 2008-04-02 18:03:08 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2008-04-02 18:03:08 +0000 |
commit | 1fec9aa092ace6272d3b7bae934ecdf25df7f6e9 (patch) | |
tree | 7b84cac0f0e7c2f6f9362415f84d40aad949d629 | |
parent | 68bb1179b6bd468f97dbfbeac4cb0c8cbe49c816 (diff) | |
download | portage-1fec9aa092ace6272d3b7bae934ecdf25df7f6e9.tar.gz portage-1fec9aa092ace6272d3b7bae934ecdf25df7f6e9.tar.bz2 portage-1fec9aa092ace6272d3b7bae934ecdf25df7f6e9.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.
svn path=/main/trunk/; revision=9677
-rw-r--r-- | pym/portage/util.py | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/pym/portage/util.py b/pym/portage/util.py index 155a787f5..fae0d63fc 100644 --- a/pym/portage/util.py +++ b/pym/portage/util.py @@ -1072,9 +1072,15 @@ 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( + os.path.join(real_dirname, last_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 def getlibpaths(): |