From: martin f. krafft Date: Sun, 20 Apr 2008 21:03:56 +0000 (+0200) Subject: Escape project name in regexp X-Git-Url: https://git.ladys.computer/Gitweb/commitdiff_plain/e3df14cf8a0b6735e1ea353ae8651ea67a6676c0909f9f3d80b2e80a39dc830c?hp=f584847a413df03429af6f1054b897c14c9adee2e97dd57802f6117f1cf981a2 Escape project name in regexp The project name, when used in a regular expression, needs to be quoted properly, so that stuff like '++' in the project name does not cause Perl to barf. Related info: http://bugs.debian.org/476076 This is a bug in Perl's CGI.pm, but fixing that exposed a similar bug in gitweb.perl Signed-off-by: martin f. krafft Signed-off-by: Junio C Hamano --- diff --git a/gitweb.perl b/gitweb.perl index 5deffa7..2cb6bc5 100755 --- a/gitweb.perl +++ b/gitweb.perl @@ -512,7 +512,7 @@ sub evaluate_path_info { } # do not change any parameters if an action is given using the query string return if $action; - $path_info =~ s,^$project/*,,; + $path_info =~ s,^\Q$project\E/*,,; my ($refname, $pathname) = split(/:/, $path_info, 2); if (defined $pathname) { # we got "project.git/branch:filename" or "project.git/branch:dir/"