flat_hash.__iter__: validate keys
authorZac Medico <zmedico@gentoo.org>
Wed, 21 Nov 2012 04:38:32 +0000 (20:38 -0800)
committerZac Medico <zmedico@gentoo.org>
Wed, 21 Nov 2012 04:38:32 +0000 (20:38 -0800)
pym/portage/cache/flat_hash.py

index 2eae9f634dfa86bb44d98cb6bc0b616df7937c68..b71e118d57c20bfb9ae3ac78b40256e9eb1ae8c3 100644 (file)
@@ -13,6 +13,8 @@ from portage import os
 from portage import _encodings
 from portage import _unicode_decode
 from portage import _unicode_encode
+from portage.exception import InvalidData
+from portage.versions import _pkg_str
 
 if sys.hexversion >= 0x3000000:
        long = int
@@ -135,8 +137,6 @@ class database(fs_template.FsBased):
                                del e
                                continue
                        for l in dir_list:
-                               if l.endswith(".cpickle"):
-                                       continue
                                p = os.path.join(dir_path, l)
                                try:
                                        st = os.lstat(p)
@@ -151,7 +151,11 @@ class database(fs_template.FsBased):
                                        if depth < 1:
                                                dirs.append((depth+1, p))
                                        continue
-                               yield p[len_base+1:]
+
+                               try:
+                                       yield _pkg_str(p[len_base+1:])
+                               except InvalidData:
+                                       continue
 
 
 class md5_database(database):