From c4d225f0bdedd7be72a5b6b2f10345773233cead Mon Sep 17 00:00:00 2001 From: Sebastian Luther Date: Tue, 13 Apr 2010 14:37:49 +0200 Subject: Add missing IUSE check in portage.dep._check_required_use() --- pym/portage/dep/__init__.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/pym/portage/dep/__init__.py b/pym/portage/dep/__init__.py index 9a3667136..a2dbbe9d0 100644 --- a/pym/portage/dep/__init__.py +++ b/pym/portage/dep/__init__.py @@ -1493,8 +1493,20 @@ def _check_required_use(constraints, use, iuse): unsat.append([constraint, constraints[id+1]]) else: #a simple use flag i.e. A or !A - if (constraint[0] == "!" and constraint[1:] not in use) or \ - (constraint[0] != "!" and constraint in use): + if constraint[0] == "!": + flag = constraint[1:] + not_operator = True + else: + flag = constraint + not_operator = False + + if not flag in iuse: + raise portage.exception.InvalidRequiredUseString( + ("check_required_use(): '%s' contains the use flag '%s', which" + \ + " is not in IUSE") % (constraints, flag)) + + if (not_operator and flag not in use) or \ + (not not_operator and constraint in use): sat.append([constraint]) else: unsat.append([constraint]) -- cgit v1.2.3-1-g7c22