diff options
Diffstat (limited to 'dgit')
-rwxr-xr-x | dgit | 16 |
1 files changed, 10 insertions, 6 deletions
@@ -819,8 +819,8 @@ sub canonicalise_suite_madison { return $r[0][2]; } -sub sshpsql ($$) { - my ($data,$sql) = @_; +sub sshpsql ($$$) { + my ($data,$runeinfo,$sql) = @_; if (!length $data) { $data= access_someuserhost('sshpsql').':'. access_cfg('sshpsql-dbname'); @@ -829,7 +829,9 @@ sub sshpsql ($$) { my ($userhost,$dbname) = ($`,$'); #'; my @rows; my @cmd = (access_cfg_ssh, $userhost, - "export LANG=C; ".shellquote qw(psql -A), $dbname, qw(-c), $sql); + ": dgit ssh-psql $runeinfo ;". + " export LANG=C;". + " ".shellquote qw(psql -A), $dbname, qw(-c), $sql); printcmd(\*DEBUG,$debugprefix."|",@cmd) if $debug>0; open P, "-|", @cmd or die $!; while (<P>) { @@ -849,13 +851,13 @@ sub sshpsql ($$) { } sub sql_injection_check { - foreach (@_) { die "$_ $& ?" if m/[']/; } + foreach (@_) { die "$_ $& ?" if m{[^-+=:_.,/0-9a-zA-Z]}; } } sub archive_query_sshpsql ($$) { my ($proto,$data) = @_; sql_injection_check $isuite, $package; - my @rows = sshpsql($data, <<END); + my @rows = sshpsql($data, "archive-query $isuite $package", <<END); SELECT source.version, component.name, files.filename, files.sha256sum FROM source JOIN src_associations ON source.id = src_associations.source @@ -880,7 +882,7 @@ END sub canonicalise_suite_sshpsql ($$) { my ($proto,$data) = @_; sql_injection_check $isuite; - my @rows = sshpsql($data, <<END); + my @rows = sshpsql($data, "canonicalise-suite $isuite", <<END); SELECT suite.codename FROM suite where suite_name='$isuite' or codename='$isuite'; END @@ -975,6 +977,7 @@ sub check_for_git () { if ($how eq 'ssh-cmd') { my @cmd = (access_cfg_ssh, access_gituserhost(), + ": dgit git-check $package ;". " set -e; cd ".access_cfg('git-path').";". " if test -d $package.git; then echo 1; else echo 0; fi"); my $r= cmdoutput @cmd; @@ -994,6 +997,7 @@ sub create_remote_git_repo () { if ($how eq 'ssh-cmd') { runcmd_ordryrun (access_cfg_ssh, access_gituserhost(), + " : dgit git-create $package ; ". "set -e; cd ".access_cfg('git-path').";". " cp -a _template $package.git"); } elsif ($how eq 'true') { |