The bug is caused by careless use of input as regex's in at least two places.
The following can hide the problem, but I don't know if it's a proper fix:
-------------- cut here ------------- 8< -----------------------
--- CGI.pm.orig 2006-12-05 06:52:37.000000000 -0500
+++ CGI.pm 2007-02-20 12:43:25.000000000 -0500
@@ -2632,7 +2632,8 @@
my $uri = $rewrite && $request_uri ? $request_uri : $script_name;
$uri =~ s/\?.*$//; # remove
query string
- $uri =~ s/$path$// if defined $path; # remove path
+ my $path_re = quotemeta($path);
+ $uri =~ s/$path_re$// if defined $path; # remove
path
if ($full) {
my $protocol = $self->protocol();
@@ -2768,8 +2769,9 @@
my $raw_path_info = $ENV{PATH_INFO} || '';
my $uri = $ENV{REQUEST_URI} || '';
- if ($raw_script_name =~ m/$raw_path_info$/) {
- $raw_script_name =~ s/$raw_path_info$//;
+ my $raw_path_info_re = quotemeta($raw_path_info);
+ if ($raw_script_name =~ m/$raw_path_info_re$/) {
+ $raw_script_name =~ s/$raw_path_info_re$//;
}
my @uri_double_slashes = $uri =~ m^(/{2,}?)^g;
-------------- cut here ------------- 8< -----------------------
Regards,
--
Ambrose Li <[EMAIL PROTECTED]>
Chinese Cultural Centre of Greater Toronto
+1 416 292 9293 http://www.cccgt.org/
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]