aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--util/sasl/plain.lua14
1 files changed, 9 insertions, 5 deletions
diff --git a/util/sasl/plain.lua b/util/sasl/plain.lua
index 46a86bb9..9ebfa15d 100644
--- a/util/sasl/plain.lua
+++ b/util/sasl/plain.lua
@@ -21,10 +21,14 @@ module "plain"
--SASL PLAIN according to RFC 4616
local function plain(self, message)
local response = message
- local authorization = s_match(response, "([^%z]+)")
- local authentication = s_match(response, "%z([^%z]+)%z")
- local password = s_match(response, "%z[^%z]+%z([^%z]+)")
-
+
+ local authorization, authentication, password;
+ if response then
+ authorization = s_match(response, "([^%z]+)")
+ authentication = s_match(response, "%z([^%z]+)%z")
+ password = s_match(response, "%z[^%z]+%z([^%z]+)")
+ end
+
if authentication == nil or password == nil then
return "failure", "malformed-request";
end
@@ -63,4 +67,4 @@ function init(registerMechanism)
registerMechanism("PLAIN", {"plain", "plain_test"}, plain);
end
-return _M; \ No newline at end of file
+return _M;