Skip to content

Commit 3473e7d

Browse files
jnarebgitster
authored andcommitted
gitweb: More detailed error messages for snapshot format
Improve error messages for snapshot format in git_snapshot: distinguish between situation where snapshots are turned off, where snapshot format ('sf') parameter is invalid, where given snapshot format does not exist in %known_snapshot_formats hash, and where gitweb was given unsupported snapshot format. While at it, use first from all supported snapshots format as default, if no snapshot format was provided. Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent 93c22ee commit 3473e7d

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

gitweb/gitweb.perl

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4317,9 +4317,16 @@ sub git_snapshot {
43174317
@supported_fmts = filter_snapshot_fmts(@supported_fmts);
43184318

43194319
my $format = $cgi->param('sf');
4320-
unless ($format =~ m/[a-z0-9]+/
4321-
&& exists($known_snapshot_formats{$format})
4322-
&& grep($_ eq $format, @supported_fmts)) {
4320+
if (!@supported_fmts) {
4321+
die_error('403 Permission denied', "Permission denied");
4322+
}
4323+
# default to first supported snapshot format
4324+
$format ||= $supported_fmts[0];
4325+
if ($format !~ m/^[a-z0-9]+$/) {
4326+
die_error(undef, "Invalid snapshot format parameter");
4327+
} elsif (!exists($known_snapshot_formats{$format})) {
4328+
die_error(undef, "Unknown snapshot format");
4329+
} elsif (!grep($_ eq $format, @supported_fmts)) {
43234330
die_error(undef, "Unsupported snapshot format");
43244331
}
43254332

0 commit comments

Comments
 (0)