Bug 122560 - Use $ENV{SCRIPT_FILENAME} instead of $0 in code, set SCRIPT_FILENAME in HTTP::Server::Simple

git-svn-id: svn://svn.office.custis.ru/3rdparty/bugzilla.org/trunk@1778 6955db30-a419-402b-8a0d-67ecbb4d7f56
master
vfilippov 2013-09-05 13:26:43 +00:00
parent 826bb73392
commit 76b6edfce3
3 changed files with 6 additions and 4 deletions

View File

@ -73,7 +73,7 @@ sub new {
$self->charset(Bugzilla->params->{'utf8'} ? 'UTF-8' : '');
# Redirect to urlbase/sslbase if we are not viewing an attachment.
my $script = basename($0);
my $script = basename($ENV{SCRIPT_FILENAME});
if ($self->url_is_attachment_base and $script ne 'attachment.cgi') {
$self->redirect_to_urlbase();
}

View File

@ -210,7 +210,7 @@ sub check_hash_token {
{
my $template = Bugzilla->template;
my $vars = {};
$vars->{'script_name'} = basename($0);
$vars->{'script_name'} = basename($ENV{SCRIPT_FILENAME});
$vars->{'token'} = issue_hash_token($data);
$vars->{'reason'} = (!$token) ? 'missing_token' :
($expected_token ne $token) ? 'invalid_token' :
@ -385,8 +385,8 @@ sub check_token_data {
$vars->{'abuser'} = Bugzilla::User->new($creator_id)->identity;
$vars->{'token_action'} = $token_action;
$vars->{'expected_action'} = $expected_action;
$vars->{'script_name'} = basename($0);
$vars->{'alternate_script'} = $alternate_script || basename($0);
$vars->{'script_name'} = basename($ENV{SCRIPT_FILENAME});
$vars->{'alternate_script'} = $alternate_script || basename($ENV{SCRIPT_FILENAME});
# Now is a good time to remove old tokens from the DB.
CleanTokenTable();

View File

@ -11,6 +11,7 @@ BEGIN
my $dir = File::Basename::dirname($0);
($dir) = $dir =~ /^(.*)$/s;
chdir($dir);
$Bugzilla::HTTPServerSimple::DOCROOT = $dir;
}
use lib qw(.);
@ -133,6 +134,7 @@ sub handle_request
$script =~ s!^($self->{_config_hash}->{path_parent_regexp})($|/+)!!s;
}
$script ||= 'index.cgi';
$ENV{SCRIPT_FILENAME} = $Bugzilla::HTTPServerSimple::DOCROOT.'/'.$script;
# Check access
if ($self->{_config_hash}->{deny_regexp} &&
$script =~ /$self->{_config_hash}->{deny_regexp}/s)