summaryrefslogtreecommitdiffstats
path: root/pym/portage/versions.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2010-09-25 03:10:42 -0700
committerZac Medico <zmedico@gentoo.org>2010-09-25 03:10:42 -0700
commit9ab8aa393e2cd743591e3a20f2ee2535e9e038b2 (patch)
tree57984151c3fbda860521189334e5fe5f7c596c58 /pym/portage/versions.py
parent30bc71ecff359ef5e674571eb979cc343222b703 (diff)
downloadportage-9ab8aa393e2cd743591e3a20f2ee2535e9e038b2.tar.gz
portage-9ab8aa393e2cd743591e3a20f2ee2535e9e038b2.tar.bz2
portage-9ab8aa393e2cd743591e3a20f2ee2535e9e038b2.zip
Fix catpkgsplit() to validate the category part. This fixes
vardbapi.cp_all() to reject invalid categories.
Diffstat (limited to 'pym/portage/versions.py')
-rw-r--r--pym/portage/versions.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/pym/portage/versions.py b/pym/portage/versions.py
index e40866ef6..8ac32eb24 100644
--- a/pym/portage/versions.py
+++ b/pym/portage/versions.py
@@ -260,6 +260,7 @@ def _pkgsplit(mypkg):
return (m.group('pn'), m.group('ver'), rev)
+_cat_re = re.compile('^%s$' % _cat)
_missing_cat = 'null'
catcache={}
def catpkgsplit(mydata,silent=1):
@@ -288,7 +289,8 @@ def catpkgsplit(mydata,silent=1):
p_split = _pkgsplit(mydata)
elif len(mysplit)==2:
cat = mysplit[0]
- p_split = _pkgsplit(mysplit[1])
+ if _cat_re.match(cat) is not None:
+ p_split = _pkgsplit(mysplit[1])
if not p_split:
catcache[mydata]=None
return None