cvsserver: Limit config parser to needed options

Change the configuration parser so that it ignores
everything except for ^gitcvs.((ext|pserver).)?
This greatly reduces the risk of failing while
parsing some unknown and irrelevant config option.

The bug that triggered this change was that the
parsing doesn't handle sections that have a
subsection and a variable with the same name.

While this bug still remains, all remaining
causes can be attributed to user error, since
there are no defined variables gitcvs.ext and
gitcvs.pserver.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Frank Lichtenheld 2007-05-13 02:16:24 +02:00 коммит произвёл Junio C Hamano
Родитель 198a2a8a69
Коммит f987afa8fe
1 изменённых файлов: 3 добавлений и 3 удалений

Просмотреть файл

@ -183,9 +183,9 @@ sub req_Root
}
foreach my $line ( @gitvars )
{
next unless ( $line =~ /^(.*?)\.(.*?)(?:\.(.*?))?=(.*)$/ );
unless ($3) {
$cfg->{$1}{$2} = $4;
next unless ( $line =~ /^(gitcvs)\.(?:(ext|pserver)\.)?([\w-]+)=(.*)$/ );
unless ($2) {
$cfg->{$1}{$3} = $4;
} else {
$cfg->{$1}{$2}{$3} = $4;
}