]> Lady’s Gitweb - Gitweb/blobdiff - gitweb.perl
gitweb: Harden "grep" search against filenames with ':'
[Gitweb] / gitweb.perl
index 1cfb8ae525e97f0a86c13ee2c079b967b400b2bb7f5ed441f0fb6a1363ee79fb..4ba6554fbdb699ec66050b4682ce90111ad0480c712d607c7ab7df4d2becda26 100755 (executable)
@@ -5837,7 +5837,7 @@ sub git_search_files {
        my %co = @_;
 
        local $/ = "\n";
-       open my $fd, "-|", git_cmd(), 'grep', '-n',
+       open my $fd, "-|", git_cmd(), 'grep', '-n', '-z',
                $search_use_regexp ? ('-E', '-i') : '-F',
                $searchtext, $co{'tree'}
                        or die_error(500, "Open git-grep failed");
@@ -5859,7 +5859,8 @@ sub git_search_files {
                        $file = $1;
                        $binary = 1;
                } else {
-                       (undef, $file, $lno, $ltext) = split(/:/, $line, 4);
+                       ($file, $lno, $ltext) = split(/\0/, $line, 3);
+                       $file =~ s/^$co{'tree'}://;
                }
                if ($file ne $lastfile) {
                        $lastfile and print "</td></tr>\n";
This page took 0.256562 seconds and 4 git commands to generate.