Bug 577765: Allow XML-RPC to accept multiple positional parameters

r=ghendricks, a=mkanat


git-svn-id: svn://10.0.0.236/branches/BUGZILLA-4_0-BRANCH@260758 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
mkanat%bugzilla.org 2010-07-13 23:27:05 +00:00
parent a9bd4aaf0b
commit dad4debae5
2 changed files with 12 additions and 10 deletions

View File

@ -152,13 +152,15 @@ use Bugzilla::WebService::Util qw(taint_data);
sub paramsin {
my $self = shift;
return $self->{bz_params_in} if $self->{bz_params_in};
my $params = $self->SUPER::paramsin(@_);
if ($self->{_bz_do_taint}) {
taint_data($params);
if (!$self->{bz_params_in}) {
my @params = $self->SUPER::paramsin(@_);
if ($self->{_bz_do_taint}) {
taint_data(@params);
}
$self->{bz_params_in} = \@params;
}
$self->{bz_params_in} = $params;
return $self->{bz_params_in};
my $params = $self->{bz_params_in};
return wantarray ? @$params : $params->[0];
}
1;

View File

@ -52,13 +52,13 @@ sub filter ($$) {
}
sub taint_data {
my $params = shift;
return if !$params;
my @params = @_;
return if !@params;
# Though this is a private function, it hasn't changed since 2004 and
# should be safe to use, and prevents us from having to write it ourselves
# or require another module to do it.
Test::Taint::_deeply_traverse(\&_delete_bad_keys, $params);
Test::Taint::taint_deeply($params);
Test::Taint::_deeply_traverse(\&_delete_bad_keys, \@params);
Test::Taint::taint_deeply(\@params);
}
sub _delete_bad_keys {