summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2009-01-12 08:13:47 +0000
committerZac Medico <zmedico@gentoo.org>2009-01-12 08:13:47 +0000
commitd96242c401d0345324c5ddde7d07a98535617831 (patch)
tree845ed48ab5fae7702d42dc66bc23b847c389484e
parent29bed6e84f637e88bea0e84218f1781964350b39 (diff)
downloadportage-d96242c401d0345324c5ddde7d07a98535617831.tar.gz
portage-d96242c401d0345324c5ddde7d07a98535617831.tar.bz2
portage-d96242c401d0345324c5ddde7d07a98535617831.zip
Bug #253467 - Don't allow alien $A values to leak into the ebuild environment.
(trunk r12379) svn path=/main/branches/2.1.6/; revision=12449
-rw-r--r--pym/portage/__init__.py12
1 files changed, 7 insertions, 5 deletions
diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py
index ed688269b..decedb822 100644
--- a/pym/portage/__init__.py
+++ b/pym/portage/__init__.py
@@ -914,6 +914,12 @@ class config(object):
virtuals ...etc you look in here.
"""
+ _env_blacklist = [
+ "A", "AA", "CATEGORY", "EBUILD_PHASE", "EMERGE_FROM",
+ "PF", "PKGUSE", "PORTAGE_CONFIGROOT", "PORTAGE_IUSE",
+ "PORTAGE_USE", "ROOT"
+ ]
+
_environ_whitelist = []
# Whitelisted variables are always allowed to enter the ebuild
@@ -1432,9 +1438,7 @@ class config(object):
self.lookuplist.reverse()
# Blacklist vars that could interfere with portage internals.
- for blacklisted in "CATEGORY", "EBUILD_PHASE", \
- "EMERGE_FROM", "PKGUSE", "PORTAGE_CONFIGROOT", \
- "PORTAGE_IUSE", "PORTAGE_USE", "ROOT":
+ for blacklisted in self._env_blacklist:
for cfg in self.lookuplist:
cfg.pop(blacklisted, None)
del blacklisted, cfg
@@ -1899,8 +1903,6 @@ class config(object):
env_configdict = self.configdict["env"]
pkg_configdict = self.configdict["pkg"]
previous_iuse = pkg_configdict.get("IUSE")
- for k in ("A", "AA", "CATEGORY", "PKGUSE", "PF", "PORTAGE_USE"):
- env_configdict.pop(k, None)
pkg_configdict["CATEGORY"] = cat
pkg_configdict["PF"] = pf
if mydb: