summaryrefslogtreecommitdiffstats
path: root/Bugzilla
diff options
context:
space:
mode:
authorFrédéric Buclin <LpSolit@gmail.com>2010-02-06 18:53:32 +0100
committerFrédéric Buclin <LpSolit@gmail.com>2010-02-06 18:53:32 +0100
commitfcf51896ea64862b43e651657ea775319c1abd31 (patch)
tree94070166c53d16897799537bca83ca5930b90511 /Bugzilla
parenta4362815ee6e840253a8d42e2bbe4c604f58cd15 (diff)
downloadbugzilla-fcf51896ea64862b43e651657ea775319c1abd31.tar.gz
bugzilla-fcf51896ea64862b43e651657ea775319c1abd31.tar.xz
Bug 515568: handle_login() doesn't check $@ after eval
r/a=mkanat
Diffstat (limited to 'Bugzilla')
-rw-r--r--Bugzilla/WebService/Constants.pm2
-rw-r--r--Bugzilla/WebService/Server.pm3
2 files changed, 5 insertions, 0 deletions
diff --git a/Bugzilla/WebService/Constants.pm b/Bugzilla/WebService/Constants.pm
index 7fd7e2ae8..a51389faa 100644
--- a/Bugzilla/WebService/Constants.pm
+++ b/Bugzilla/WebService/Constants.pm
@@ -112,6 +112,8 @@ use constant WS_ERROR_CODE => {
invalid_user_group => 504,
user_access_by_id_denied => 505,
user_access_by_match_denied => 505,
+ # Fatal errors (must be negative).
+ unknown_method => -32601,
};
# These are the fallback defaults for errors not in ERROR_CODE.
diff --git a/Bugzilla/WebService/Server.pm b/Bugzilla/WebService/Server.pm
index 115c7df89..9571e8030 100644
--- a/Bugzilla/WebService/Server.pm
+++ b/Bugzilla/WebService/Server.pm
@@ -18,9 +18,12 @@
package Bugzilla::WebService::Server;
use strict;
+use Bugzilla::Error;
+
sub handle_login {
my ($self, $class, $method, $full_method) = @_;
eval "require $class";
+ ThrowCodeError('unknown_method', {method => $full_method}) if $@;
return if ($class->login_exempt($method)
and !defined Bugzilla->input_params->{Bugzilla_login});
Bugzilla->login();