]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 313255: Move $::ENV{foo} and $::SIG{foo} out of globals.pl - Patch by Frédéric...
authorlpsolit%gmail.com <>
Wed, 14 Jun 2006 07:26:27 +0000 (07:26 +0000)
committerlpsolit%gmail.com <>
Wed, 14 Jun 2006 07:26:27 +0000 (07:26 +0000)
Bugzilla.pm
Bugzilla/CGI.pm
checksetup.pl
globals.pl

index 349b05f5fee2f78c7441fc31673060e4516f8d07..a100c0cff1531a96e6f223bb8bba2fe8263a5ecf 100644 (file)
@@ -59,6 +59,9 @@ use constant SHUTDOWNHTML_EXIT_SILENTLY => [
 # Global Code
 #####################################################################
 
+# Some environment variables are not taint safe
+delete @::ENV{'PATH', 'IFS', 'CDPATH', 'ENV', 'BASH_ENV'};
+
 # If Bugzilla is shut down, do not allow anything to run, just display a
 # message to the user about the downtime and log out.  Scripts listed in 
 # SHUTDOWNHTML_EXEMPT are exempt from this message.
index bc2d39b998a73da69c7b063a15534b27e311b690..b578b617c6632e59fd9cec78a28d18e408dcd42c 100644 (file)
@@ -45,6 +45,24 @@ use Bugzilla::Config;
 # We need to disable output buffering - see bug 179174
 $| = 1;
 
+# Ignore SIGTERM and SIGPIPE - this prevents DB corruption. If the user closes
+# their browser window while a script is running, the webserver sends these
+# signals, and we don't want to die half way through a write.
+$::SIG{TERM} = 'IGNORE';
+$::SIG{PIPE} = 'IGNORE';
+
+# The following subroutine is for debugging purposes only.
+# Uncommenting this sub and the $::SIG{__DIE__} trap underneath it will
+# cause any fatal errors to result in a call stack trace to help track
+# down weird errors.
+#sub die_with_dignity {
+#    use Carp;  # for confess()
+#    my ($err_msg) = @_;
+#    print $err_msg;
+#    confess($err_msg);
+#}
+#$::SIG{__DIE__} = \&die_with_dignity;
+
 # CGI.pm uses AUTOLOAD, but explicitly defines a DESTROY sub.
 # We need to do so, too, otherwise perl dies when the object is destroyed
 # and we don't have a DESTROY method (because CGI.pm's AUTOLOAD will |die|
index 7e7f7b4e19470c50ec75a54e38f87a68bd0a4a1d..f5380e22e26a272baf4de3d355ad7a8ce1b279a3 100755 (executable)
@@ -1500,24 +1500,12 @@ import Bugzilla::User qw(insert_new_user);
 require Bugzilla::Bug;
 import Bugzilla::Bug qw(is_open_state);
 
-# globals.pl clears the PATH, but File::Find uses Cwd::cwd() instead of
-# Cwd::getcwd(), which we need to do because `pwd` isn't in the path - see
-# http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2001-09/msg00115.html
-# As a workaround, since we only use File::Find in checksetup, which doesn't
-# run in taint mode anyway, preserve the path...
-my $origPath = $::ENV{'PATH'};
-
 # Use the Bugzilla utility library for various functions.  We do this
 # here rather than at the top of the file so globals.pl doesn't define
 # localconfig variables for us before we get a chance to check for
-# their existence and create them if they don't exist.  Also, globals.pl
-# removes $ENV{'path'}, which we need in order to run `which mysql` above.
+# their existence and create them if they don't exist.
 require "globals.pl";
 
-# ...and restore it. This doesn't change tainting, so this will still cause
-# errors if this script ever does run with -T.
-$::ENV{'PATH'} = $origPath;
-
 ###########################################################################
 # Check Database setup
 ###########################################################################
index 9d47c6d78768400a6b315a8fe6362b6eabc14762..64d35f303c41f68b3616da801bc28292aeda09fe 100644 (file)
@@ -67,32 +67,6 @@ use Date::Parse;               # For str2time().
 
 # Use standard Perl libraries for cross-platform file/directory manipulation.
 use File::Spec;
-    
-# Some environment variables are not taint safe
-delete @::ENV{'PATH', 'IFS', 'CDPATH', 'ENV', 'BASH_ENV'};
-
-# Cwd.pm in perl 5.6.1 gives a warning if $::ENV{'PATH'} isn't defined
-# Set this to '' so that we don't get warnings cluttering the logs on every
-# system call
-$::ENV{'PATH'} = '';
-
-# Ignore SIGTERM and SIGPIPE - this prevents DB corruption. If the user closes
-# their browser window while a script is running, the webserver sends these
-# signals, and we don't want to die half way through a write.
-$::SIG{TERM} = 'IGNORE';
-$::SIG{PIPE} = 'IGNORE';
-
-# The following subroutine is for debugging purposes only.
-# Uncommenting this sub and the $::SIG{__DIE__} trap underneath it will
-# cause any fatal errors to result in a call stack trace to help track
-# down weird errors.
-#sub die_with_dignity {
-#    use Carp;  # for confess()
-#    my ($err_msg) = @_;
-#    print $err_msg;
-#    confess($err_msg);
-#}
-#$::SIG{__DIE__} = \&die_with_dignity;
 
 # XXXX - this needs to go away
 sub GenerateVersionTable {