Bug #253467 - Don't allow alien $A values to leak into the ebuild environment.
authorZac Medico <zmedico@gentoo.org>
Sun, 4 Jan 2009 02:52:17 +0000 (02:52 -0000)
committerZac Medico <zmedico@gentoo.org>
Sun, 4 Jan 2009 02:52:17 +0000 (02:52 -0000)
svn path=/main/trunk/; revision=12379

pym/portage/__init__.py

index cfb4e616b57d1358639fee697490e236885444cf..75398038800fb65217118afc7893542d0aa4b654 100644 (file)
@@ -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
@@ -1909,8 +1913,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: