diff options
author | Zac Medico <zmedico@gentoo.org> | 2009-01-12 08:13:47 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2009-01-12 08:13:47 +0000 |
commit | d96242c401d0345324c5ddde7d07a98535617831 (patch) | |
tree | 845ed48ab5fae7702d42dc66bc23b847c389484e | |
parent | 29bed6e84f637e88bea0e84218f1781964350b39 (diff) | |
download | portage-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__.py | 12 |
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: |