]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 577765: Allow XML-RPC to accept multiple positional parameters
authorMax Kanat-Alexander <mkanat@bugzilla.org>
Tue, 13 Jul 2010 23:06:04 +0000 (16:06 -0700)
committerMax Kanat-Alexander <mkanat@bugzilla.org>
Tue, 13 Jul 2010 23:06:04 +0000 (16:06 -0700)
r=ghendricks, a=mkanat

Bugzilla/WebService/Server/XMLRPC.pm
Bugzilla/WebService/Util.pm

index 6eb09dc221ef89e7389873d9765073125f5aca42..18757c0ecfa7411cd15a97c8c9790f5a9304da47 100644 (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;
index 8ff608c3acd66f1cb094d1dcbeb3a22d5f730f64..41e4c1d26392268c26dcfe0d67c6093ea2202a9f 100644 (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 {