summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-03-02 23:28:12 +0000
committerZac Medico <zmedico@gentoo.org>2008-03-02 23:28:12 +0000
commite7ea9ae438db74b6563b7ba8f1d7a22cd794a4ce (patch)
tree2266daad9f8b4c8e868bce2dadf82d2e38433d2d /bin
parent129d61e63c7267f786dfec3322c158686531d32f (diff)
downloadportage-e7ea9ae438db74b6563b7ba8f1d7a22cd794a4ce.tar.gz
portage-e7ea9ae438db74b6563b7ba8f1d7a22cd794a4ce.tar.bz2
portage-e7ea9ae438db74b6563b7ba8f1d7a22cd794a4ce.zip
Bug #211949 - As suggested by vapier, tighten the variable filter to also
exclude variable names that begin with a digit or that contain any non-alphanumeric characters that are not be supported by bash. (trunk r9416) svn path=/main/branches/2.1.2/; revision=9417
Diffstat (limited to 'bin')
-rwxr-xr-xbin/ebuild.sh6
-rwxr-xr-xbin/filter-bash-environment.py1
2 files changed, 5 insertions, 2 deletions
diff --git a/bin/ebuild.sh b/bin/ebuild.sh
index 9d0c42a55..60442e2d6 100755
--- a/bin/ebuild.sh
+++ b/bin/ebuild.sh
@@ -1388,8 +1388,9 @@ PORTAGE_MUTABLE_FILTERED_VARS="AA HOSTNAME"
# with names that are known to cause interference:
#
# * some specific variables for which bash does not allow assignment
-# * any variables with names containing a hyphen (not allowed by bash)
# * some specific variables that affect portage or sandbox behavior
+# * variable names that begin with a digit or that contain any
+# non-alphanumeric characters that are not be supported by bash
#
# --filter-sandbox causes all SANDBOX_* variables to be filtered, which
# is only desired in certain cases, such as during preprocessing or when
@@ -1418,7 +1419,8 @@ filter_readonly_variables() {
SANDBOX_DEBUG_LOG SANDBOX_DISABLED SANDBOX_LIB
SANDBOX_LOG SANDBOX_ON"
filtered_vars="${readonly_bash_vars} ${READONLY_PORTAGE_VARS}
- BASH_[_[:alnum:]]* PATH [-_[:alnum:]]*-[-_[:alnum:]]*"
+ BASH_[_[:alnum:]]* PATH
+ [[:digit:]][_[:alnum:]]* [_[:alnum:]]*[^_[:alnum:]][_[:alnum:]]*"
if hasq --filter-sandbox $* ; then
filtered_vars="${filtered_vars} SANDBOX_[_[:alnum:]]*"
else
diff --git a/bin/filter-bash-environment.py b/bin/filter-bash-environment.py
index 83b250b69..691d406da 100755
--- a/bin/filter-bash-environment.py
+++ b/bin/filter-bash-environment.py
@@ -7,6 +7,7 @@ import os, re, sys
egrep_compat_map = {
"[:alnum:]" : r'\w',
+ "[:digit:]" : r'\d',
"[:space:]" : r'\s',
}