Merge branch 'jn/gitweb-unspecified-action' into maint-1.7.8
* jn/gitweb-unspecified-action: gitweb: Fix actionless dispatch for non-existent objects
This commit is contained in:
commit
bd193f46b7
@ -1122,8 +1122,10 @@ sub dispatch {
|
|||||||
if (!defined $action) {
|
if (!defined $action) {
|
||||||
if (defined $hash) {
|
if (defined $hash) {
|
||||||
$action = git_get_type($hash);
|
$action = git_get_type($hash);
|
||||||
|
$action or die_error(404, "Object does not exist");
|
||||||
} elsif (defined $hash_base && defined $file_name) {
|
} elsif (defined $hash_base && defined $file_name) {
|
||||||
$action = git_get_type("$hash_base:$file_name");
|
$action = git_get_type("$hash_base:$file_name");
|
||||||
|
$action or die_error(404, "File or directory does not exist");
|
||||||
} elsif (defined $project) {
|
} elsif (defined $project) {
|
||||||
$action = 'summary';
|
$action = 'summary';
|
||||||
} else {
|
} else {
|
||||||
@ -2364,7 +2366,7 @@ sub get_feed_info {
|
|||||||
return unless (defined $project);
|
return unless (defined $project);
|
||||||
# some views should link to OPML, or to generic project feed,
|
# some views should link to OPML, or to generic project feed,
|
||||||
# or don't have specific feed yet (so they should use generic)
|
# or don't have specific feed yet (so they should use generic)
|
||||||
return if ($action =~ /^(?:tags|heads|forks|tag|search)$/x);
|
return if (!$action || $action =~ /^(?:tags|heads|forks|tag|search)$/x);
|
||||||
|
|
||||||
my $branch;
|
my $branch;
|
||||||
# branches refs uses 'refs/heads/' prefix (fullname) to differentiate
|
# branches refs uses 'refs/heads/' prefix (fullname) to differentiate
|
||||||
|
@ -403,6 +403,14 @@ test_expect_success \
|
|||||||
'path_info: project/branch:dir/' \
|
'path_info: project/branch:dir/' \
|
||||||
'gitweb_run "" "/.git/master:foo/"'
|
'gitweb_run "" "/.git/master:foo/"'
|
||||||
|
|
||||||
|
test_expect_success \
|
||||||
|
'path_info: project/branch (non-existent)' \
|
||||||
|
'gitweb_run "" "/.git/non-existent"'
|
||||||
|
|
||||||
|
test_expect_success \
|
||||||
|
'path_info: project/branch:filename (non-existent branch)' \
|
||||||
|
'gitweb_run "" "/.git/non-existent:non-existent"'
|
||||||
|
|
||||||
test_expect_success \
|
test_expect_success \
|
||||||
'path_info: project/branch:file (non-existent)' \
|
'path_info: project/branch:file (non-existent)' \
|
||||||
'gitweb_run "" "/.git/master:non-existent"'
|
'gitweb_run "" "/.git/master:non-existent"'
|
||||||
|
Loading…
Reference in New Issue
Block a user