summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2007-07-30 04:26:52 +0000
committerZac Medico <zmedico@gentoo.org>2007-07-30 04:26:52 +0000
commit7018f3627812e4787d274e875853407535a64ff2 (patch)
treee545c358a9c3a2ae86bcfb32cf1ebffea11fcbf4
parentbd85a8fadbaafcbda02a8381212f26b7d9067b22 (diff)
downloadportage-7018f3627812e4787d274e875853407535a64ff2.tar.gz
portage-7018f3627812e4787d274e875853407535a64ff2.tar.bz2
portage-7018f3627812e4787d274e875853407535a64ff2.zip
Fix cacheddir() to behave properly if os.listdir() raises errno.EACCES (Permission denied). (branches/2.1.2 r6880)
svn path=/main/branches/2.1.2.9/; revision=7468
-rw-r--r--pym/portage.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/pym/portage.py b/pym/portage.py
index 0b6e3195e..2a153a298 100644
--- a/pym/portage.py
+++ b/pym/portage.py
@@ -193,7 +193,15 @@ def cacheddir(my_original_path, ignorecvs, ignorelist, EmptyOnError, followSymli
if mtime != cached_mtime or time.time() - mtime < 4:
if dircache.has_key(mypath):
cacheStale += 1
- list = os.listdir(mypath)
+ try:
+ list = os.listdir(mypath)
+ except EnvironmentError, e:
+ if e.errno != errno.EACCES:
+ raise
+ del e
+ if EmptyOnError:
+ return [], []
+ raise portage_exception.PermissionDenied(mypath)
ftype = []
for x in list:
try: