cvsserver: Corrections to the database backend configuration
Don't include the scheme name in gitcvs.dbdriver, it is always 'dbi' anyway. Don't allow ':' in driver names nor ';' in database names for sanity reasons. Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
0cf611a300
commit
473937ed44
@ -2149,7 +2149,7 @@ sub new
|
|||||||
die "Git repo '$self->{git_path}' doesn't exist" unless ( -d $self->{git_path} );
|
die "Git repo '$self->{git_path}' doesn't exist" unless ( -d $self->{git_path} );
|
||||||
|
|
||||||
$self->{dbdriver} = $cfg->{gitcvs}{$state->{method}}{dbdriver} ||
|
$self->{dbdriver} = $cfg->{gitcvs}{$state->{method}}{dbdriver} ||
|
||||||
$cfg->{gitcvs}{dbdriver} || "dbi:SQLite";
|
$cfg->{gitcvs}{dbdriver} || "SQLite";
|
||||||
$self->{dbname} = $cfg->{gitcvs}{$state->{method}}{dbname} ||
|
$self->{dbname} = $cfg->{gitcvs}{$state->{method}}{dbname} ||
|
||||||
$cfg->{gitcvs}{dbname} || "%Ggitcvs.%m.sqlite";
|
$cfg->{gitcvs}{dbname} || "%Ggitcvs.%m.sqlite";
|
||||||
$self->{dbuser} = $cfg->{gitcvs}{$state->{method}}{dbuser} ||
|
$self->{dbuser} = $cfg->{gitcvs}{$state->{method}}{dbuser} ||
|
||||||
@ -2165,7 +2165,9 @@ sub new
|
|||||||
$self->{dbname} =~ s/%([mauGg])/$mapping{$1}/eg;
|
$self->{dbname} =~ s/%([mauGg])/$mapping{$1}/eg;
|
||||||
$self->{dbuser} =~ s/%([mauGg])/$mapping{$1}/eg;
|
$self->{dbuser} =~ s/%([mauGg])/$mapping{$1}/eg;
|
||||||
|
|
||||||
$self->{dbh} = DBI->connect("$self->{dbdriver}:dbname=$self->{dbname}",
|
die "Invalid char ':' in dbdriver" if $self->{dbdriver} =~ /:/;
|
||||||
|
die "Invalid char ';' in dbname" if $self->{dbname} =~ /;/;
|
||||||
|
$self->{dbh} = DBI->connect("dbi:$self->{dbdriver}:dbname=$self->{dbname}",
|
||||||
$self->{dbuser},
|
$self->{dbuser},
|
||||||
$self->{dbpass});
|
$self->{dbpass});
|
||||||
die "Error connecting to database\n" unless defined $self->{dbh};
|
die "Error connecting to database\n" unless defined $self->{dbh};
|
||||||
|
Loading…
Reference in New Issue
Block a user