diff options
author | Zac Medico <zmedico@gentoo.org> | 2007-11-19 00:02:34 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2007-11-19 00:02:34 +0000 |
commit | 7fa6df01d53bba3c05d6c6f12eca652c0f954edc (patch) | |
tree | 34aabdddeccadb0740fcb9c3bb846973607c9b6d | |
parent | d9b10deaa03ce174d5ccc3b59c477549ad87e884 (diff) | |
download | portage-7fa6df01d53bba3c05d6c6f12eca652c0f954edc.tar.gz portage-7fa6df01d53bba3c05d6c6f12eca652c0f954edc.tar.bz2 portage-7fa6df01d53bba3c05d6c6f12eca652c0f954edc.zip |
Fix PROFILE_ONLY_VARIABLES handling in the config constructor
so that variables are appropriately filtered from "backupenv",
since otherwise they can leak in from there.
svn path=/main/trunk/; revision=8524
-rw-r--r-- | pym/portage/__init__.py | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py index 57ba5ce0a..487dd6ba9 100644 --- a/pym/portage/__init__.py +++ b/pym/portage/__init__.py @@ -969,9 +969,6 @@ class config(object): self._use_wildcards = copy.deepcopy(clone._use_wildcards) else: - # backupenv is for calculated incremental variables. - self.backupenv = os.environ.copy() - def check_var_directory(varname, var): if not os.path.isdir(var): writemsg(("!!! Error: %s='%s' is not a directory. " + \ @@ -1224,15 +1221,16 @@ class config(object): self.configlist.append({}) self.configdict["auto"]=self.configlist[-1] + # backupenv is used for calculating incremental variables. + self.backupenv = os.environ.copy() self.configlist.append(self.backupenv) # XXX Why though? self.configdict["backupenv"]=self.configlist[-1] - myenv = os.environ.copy() # Don't allow the user to override certain variables in the env for k in profile_only_variables: - myenv.pop(k, None) + self.backupenv.pop(k, None) - self.configlist.append(myenv) + self.configlist.append(self.backupenv.copy()) self.configdict["env"]=self.configlist[-1] # make lookuplist for loading package.* |