diff options
author | Zac Medico <zmedico@gentoo.org> | 2008-11-15 22:16:27 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2008-11-15 22:16:27 +0000 |
commit | 6788e80a70b6c012bfed3665d73dfbb9778fd806 (patch) | |
tree | bf09b89717493d38fa5148641fb185e92ecdb9c8 | |
parent | d0a1b8bb01dece5fc18a6753ca9cda099b100deb (diff) | |
download | portage-6788e80a70b6c012bfed3665d73dfbb9778fd806.tar.gz portage-6788e80a70b6c012bfed3665d73dfbb9778fd806.tar.bz2 portage-6788e80a70b6c012bfed3665d73dfbb9778fd806.zip |
Make NewsManager.updateItems() and getUnreadItems() return early if
PermissionDenied errors are encountered when attempting to read the
skip or unread files.
svn path=/main/trunk/; revision=11956
-rw-r--r-- | pym/portage/news.py | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/pym/portage/news.py b/pym/portage/news.py index aa979dabd..90dd3a065 100644 --- a/pym/portage/news.py +++ b/pym/portage/news.py @@ -100,10 +100,13 @@ class NewsManager(object): unread_filename = self._unread_filename(repoid) unread_lock = lockfile(unread_filename, wantnewlockfile=1) try: - unread = set(grabfile(unread_filename)) - unread_orig = unread.copy() - skip = set(grabfile(skip_filename)) - skip_orig = skip.copy() + try: + unread = set(grabfile(unread_filename)) + unread_orig = unread.copy() + skip = set(grabfile(skip_filename)) + skip_orig = skip.copy() + except PermissionDenied: + return updates = [] for itemid in news: @@ -156,7 +159,10 @@ class NewsManager(object): except (InvalidLocation, OperationNotPermitted, PermissionDenied): return 0 try: - return len(grabfile(unread_filename)) + try: + return len(grabfile(unread_filename)) + except PermissionDenied: + return 0 finally: if unread_lock: unlockfile(unread_lock) |