зеркало из https://github.com/microsoft/git.git
gitweb: Don't use quotemeta on internally generated strings
Do not use quotemeta on internally generated strings such as filenames of snapshot, blobs, etc. quotemeta quotes any characters not matching /A-Za-z_0-9/. Which means that we get strings like this: before: linux\-2\.6\.git\-5c2d97cb31fb77981797fec46230ca005b865799\.tar\.gz after: linux-2.6.git-5c2d97cb31fb77981797fec46230ca005b865799.tar.gz This patch fixes this. Signed-off-by: Luben Tuikov <ltuikov@yahoo.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Родитель
ba6ef81017
Коммит
a2a3bf7b2b
|
@ -2660,7 +2660,7 @@ sub git_blob_plain {
|
||||||
print $cgi->header(
|
print $cgi->header(
|
||||||
-type => "$type",
|
-type => "$type",
|
||||||
-expires=>$expires,
|
-expires=>$expires,
|
||||||
-content_disposition => 'inline; filename="' . quotemeta($save_as) . '"');
|
-content_disposition => 'inline; filename="' . "$save_as" . '"');
|
||||||
undef $/;
|
undef $/;
|
||||||
binmode STDOUT, ':raw';
|
binmode STDOUT, ':raw';
|
||||||
print <$fd>;
|
print <$fd>;
|
||||||
|
@ -2835,7 +2835,7 @@ sub git_snapshot {
|
||||||
print $cgi->header(
|
print $cgi->header(
|
||||||
-type => 'application/x-tar',
|
-type => 'application/x-tar',
|
||||||
-content_encoding => $ctype,
|
-content_encoding => $ctype,
|
||||||
-content_disposition => 'inline; filename="' . quotemeta($filename) . '"',
|
-content_disposition => 'inline; filename="' . "$filename" . '"',
|
||||||
-status => '200 OK');
|
-status => '200 OK');
|
||||||
|
|
||||||
my $git_command = git_cmd_str();
|
my $git_command = git_cmd_str();
|
||||||
|
@ -2933,7 +2933,6 @@ sub git_commit {
|
||||||
|
|
||||||
my @views_nav = ();
|
my @views_nav = ();
|
||||||
if (defined $file_name && defined $co{'parent'}) {
|
if (defined $file_name && defined $co{'parent'}) {
|
||||||
my $parent = $co{'parent'};
|
|
||||||
push @views_nav,
|
push @views_nav,
|
||||||
$cgi->a({-href => href(action=>"blame", hash_parent=>$parent, file_name=>$file_name)},
|
$cgi->a({-href => href(action=>"blame", hash_parent=>$parent, file_name=>$file_name)},
|
||||||
"blame");
|
"blame");
|
||||||
|
@ -3145,7 +3144,7 @@ sub git_blobdiff {
|
||||||
-type => 'text/plain',
|
-type => 'text/plain',
|
||||||
-charset => 'utf-8',
|
-charset => 'utf-8',
|
||||||
-expires => $expires,
|
-expires => $expires,
|
||||||
-content_disposition => 'inline; filename="' . quotemeta($file_name) . '.patch"');
|
-content_disposition => 'inline; filename="' . "$file_name" . '.patch"');
|
||||||
|
|
||||||
print "X-Git-Url: " . $cgi->self_url() . "\n\n";
|
print "X-Git-Url: " . $cgi->self_url() . "\n\n";
|
||||||
|
|
||||||
|
@ -3248,7 +3247,7 @@ sub git_commitdiff {
|
||||||
-type => 'text/plain',
|
-type => 'text/plain',
|
||||||
-charset => 'utf-8',
|
-charset => 'utf-8',
|
||||||
-expires => $expires,
|
-expires => $expires,
|
||||||
-content_disposition => 'inline; filename="' . quotemeta($filename) . '"');
|
-content_disposition => 'inline; filename="' . "$filename" . '"');
|
||||||
my %ad = parse_date($co{'author_epoch'}, $co{'author_tz'});
|
my %ad = parse_date($co{'author_epoch'}, $co{'author_tz'});
|
||||||
print <<TEXT;
|
print <<TEXT;
|
||||||
From: $co{'author'}
|
From: $co{'author'}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче