summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-05-20 01:13:25 +0000
committerZac Medico <zmedico@gentoo.org>2008-05-20 01:13:25 +0000
commite91945cd3bb16a6a6d4c8e11d43891bd4b4fc2b1 (patch)
tree54cedb2d0eb48160e569cdabe803b6a7e32d042c
parent7370dc39166faaced1d4561846fa1bdfba4a30d1 (diff)
downloadportage-e91945cd3bb16a6a6d4c8e11d43891bd4b4fc2b1.tar.gz
portage-e91945cd3bb16a6a6d4c8e11d43891bd4b4fc2b1.tar.bz2
portage-e91945cd3bb16a6a6d4c8e11d43891bd4b4fc2b1.zip
Inside vardbapi.aux_get(), do more validation on the cache data to
ensure it contains the expected data types. svn path=/main/trunk/; revision=10373
-rw-r--r--pym/portage/dbapi/vartree.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py
index cb47cd68d..fc0fca28d 100644
--- a/pym/portage/dbapi/vartree.py
+++ b/pym/portage/dbapi/vartree.py
@@ -617,6 +617,15 @@ class vardbapi(dbapi):
cache_incomplete = False
cache_mtime = None
metadata = None
+ if pkg_data is not None:
+ if not isinstance(pkg_data, tuple) or len(pkg_data) != 2:
+ pkg_data = None
+ else:
+ cache_mtime, metadata = pkg_data
+ if not isinstance(cache_mtime, (long, int)) or \
+ not isinstance(metadata, dict):
+ pkg_data = None
+
if pkg_data:
cache_mtime, metadata = pkg_data
cache_valid = cache_mtime == mydir_mtime