Skip to content

Commit ac62a36

Browse files
mrjimenezgitster
authored andcommitted
gitweb: die when a configuration file cannot be read
Fix a possibility of a permission to access error go unnoticed. Perl uses two different variables to manage errors from a "do $filename" construct. One is $@, which is set in this case when do is unable to compile the file. The other is $!, which is set in case do cannot read the file. The current code only checks "$@", which means a configuration file passed to GitWeb that is not readable by the server process does not cause it to "die". Make sure we also check and act on "$!" to fix this. Signed-off-by: Marcelo Roberto Jimenez <marcelo.jimenez@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent 564d025 commit ac62a36

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

gitweb/gitweb.perl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -728,9 +728,11 @@ sub filter_and_validate_refs {
728728
sub read_config_file {
729729
my $filename = shift;
730730
return unless defined $filename;
731-
# die if there are errors parsing config file
732731
if (-e $filename) {
733732
do $filename;
733+
# die if there is a problem accessing the file
734+
die $! if $!;
735+
# die if there are errors parsing config file
734736
die $@ if $@;
735737
return 1;
736738
}

0 commit comments

Comments
 (0)