>From: "Stas Bekman"
> Tulan W. Hu wrote:
> >>From: "Stas Bekman"
> >>Tulan W. Hu wrote:
> >>
> >>>-- Original Message ----- 
> >>>From: "Stas Bekman"
> >>>
> >>>
> >>>>Please take a look at Apache-Test/lib/Apache/TestConfig.pm
> >>>>
> >>>>sub open_cmd {
> >>>....
> >>>>it calls untaint_path($ENV{PATH}) in the same file. Please take a look
> >>>>at that function and see if you can fix it.
> >>>>
> >>>>If you don't figure out, please apply the patch below and post the
> >>>>console output at the server startup. Thanks.
> >>>
> >>>Thank you for your advise. I do have a long list in the $ENV{PATH}.
> >>
> >>If you don't show us what you have in there, we can't fix it. So it's
the
> >>best that you do (feel free to email me offlist if you think that the
> >>information in that path is somewhat sensitive. untaint_path is supposed
> >>to deal with any path. I guess you have a new case we didn't encounter
> >> yet.
> >
> > I have carefully checked my PATH. I found out the problem is my PATH
> > contains  "/usr/bin:.:/usr/java/bin:$OLDPATH:/usr/local/bin.....".
> > where the $OLDPATH was not defined.
> > This became an empty spot, "$path::$other_long_pathes", and caused the
> > security error.
> > You may want to add the case in the untaint_path.
>
> Right. This patch should handle this case. Please confirm that it does.

***** the patch works ok. (tried both perl 5.8.5 and perl 5.8.6)

> Thanks.
>
> Index: Apache-Test/lib/Apache/TestConfig.pm
> ===================================================================
> --- Apache-Test/lib/Apache/TestConfig.pm        (revision 148914)
> +++ Apache-Test/lib/Apache/TestConfig.pm        (working copy)
> @@ -1699,9 +1699,8 @@
>       ($path) = ( $path =~ /(.*)/ );
>       # win32 uses ';' for a path separator, assume others use ':'
>       my $sep = WIN32 ? ';' : ':';
> -    # -T disallows relative directories in the PATH
> -    $path = join $sep, grep !/^\./, split /$sep/, $path;
> -    return $path;
> +    # -T disallows relative and empty directories in the PATH
> +    return join $sep, grep !/^(\.|$)/, split /$sep/, $path;
>   }
>
>   sub pop_dir {

Attached error_log is from
$ t/TEST -clean
$ t/TEST -verbose protocol/pseudo_http.t
and Registryerrlog.txt is from the ModPerl-Registry dir
$ t/TEST -clean
$ t/TEST -verbose  closure.t
    6-ok on the output.

I guess they are ok since the "harmless" messages are in the log files.

Attachment: error_log
Description: Binary data

[Fri Jan 28 17:21:29 2005] [notice] Apache/2.0.52 (Unix) mod_perl/1.999.21 
Perl/v5.8.6 configured -- resuming normal operations
[Fri Jan 28 17:21:29 2005] [info] Server built: Jan 26 2005 08:09:45
[Fri Jan 28 17:21:29 2005] [debug] prefork.c(955): AcceptMutex: pthread 
(default: pthread)

*** The following warn entry is expected and harmless ***
Variable "$counter" will not stay shared at 
/s5/twh/papache/mod_perl-2.0.0-RC4/ModPerl-Registry/t/cgi-bin/closure.pl line 
21.

*** The following warn entry is expected and harmless ***
Variable "$counter" will not stay shared at 
/s5/twh/papache/mod_perl-2.0.0-RC4/ModPerl-Registry/t/cgi-bin/closure.pl line 
21.

*** The following warn entry is expected and harmless ***
Variable "$counter" will not stay shared at 
/s5/twh/papache/mod_perl-2.0.0-RC4/ModPerl-Registry/t/cgi-bin/closure.pl line 
21.

*** The following warn entry is expected and harmless ***
Variable "$counter" will not stay shared at 
/s5/twh/papache/mod_perl-2.0.0-RC4/ModPerl-Registry/t/cgi-bin/closure.pl line 
21.

*** The following warn entry is expected and harmless ***
Variable "$counter" will not stay shared at 
/s5/twh/papache/mod_perl-2.0.0-RC4/ModPerl-Registry/t/cgi-bin/closure.pl line 
21.

*** The following warn entry is expected and harmless ***
Variable "$counter" will not stay shared at 
/s5/twh/papache/mod_perl-2.0.0-RC4/ModPerl-Registry/t/cgi-bin/closure.pl line 
21.
Subroutine counter redefined at 
/s5/twh/papache/mod_perl-2.0.0-RC4/ModPerl-Registry/t/cgi-bin/closure.pl line 
19.

*** The following warn entry is expected and harmless ***
Variable "$counter" will not stay shared at 
/s5/twh/papache/mod_perl-2.0.0-RC4/ModPerl-Registry/t/cgi-bin/closure.pl line 
21.
[Fri Jan 28 17:21:35 2005] [info] removed PID file 
/s5/twh/papache/mod_perl-2.0.0-RC4/ModPerl-Registry/t/logs/httpd.pid (pid=15121)
[Fri Jan 28 17:21:35 2005] [notice] caught SIGTERM, shutting down

Reply via email to