diff --git a/lib/Plack/App/WrapCGI.pm b/lib/Plack/App/WrapCGI.pm index 1ce526ebb..d6876fa9d 100644 --- a/lib/Plack/App/WrapCGI.pm +++ b/lib/Plack/App/WrapCGI.pm @@ -45,7 +45,13 @@ sub prepare_app { close $stdoutr; close $stdinw; - local %ENV = (%ENV, CGI::Emulate::PSGI->emulate_environment($env)); + my %env = %ENV; + for (qw(REMOTE_HOST HTTP_AUTHORIZATION IFS CDPATH PATH LD_PRELOAD + LD_TRACE_LOADED_OBJECTS LD_WARN LD_DEBUG LD_AUDIT LD_VERBOSE)) + { + delete $env{$_}; + } + local %ENV = (%env, CGI::Emulate::PSGI->emulate_environment($env)); open( STDOUT, ">&=" . fileno($stdoutw) ) or Carp::croak "Cannot dup STDOUT: $!"; diff --git a/lib/Plack/Handler/CGI.pm b/lib/Plack/Handler/CGI.pm index bd2926aaa..c7d2157b3 100644 --- a/lib/Plack/Handler/CGI.pm +++ b/lib/Plack/Handler/CGI.pm @@ -88,8 +88,15 @@ sub setup_env { binmode STDIN; binmode STDERR; + my %env = %ENV; + for (qw(REMOTE_HOST HTTP_AUTHORIZATION IFS CDPATH PATH LD_PRELOAD + LD_TRACE_LOADED_OBJECTS LD_WARN LD_DEBUG LD_AUDIT LD_VERBOSE)) + { + delete $env{$_}; + } + my $env = { - %ENV, + %env, 'psgi.version' => [ 1, 1 ], 'psgi.url_scheme' => ($ENV{HTTPS}||'off') =~ /^(?:on|1)$/i ? 'https' : 'http', 'psgi.input' => *STDIN,