Inside vardbapi.aux_get(), do more validation on the cache data to
authorZac Medico <zmedico@gentoo.org>
Tue, 20 May 2008 01:13:25 +0000 (01:13 -0000)
committerZac Medico <zmedico@gentoo.org>
Tue, 20 May 2008 01:13:25 +0000 (01:13 -0000)
ensure it contains the expected data types.

svn path=/main/trunk/; revision=10373

pym/portage/dbapi/vartree.py

index cb47cd68d2ec60384eccd49e2fef149f01a600ea..fc0fca28d644a504880e5defd141dd5c2aecd6ac 100644 (file)
@@ -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