diff mod_sasl2_fast/mod_sasl2_fast.lua @ 5923:87441b567277

mod_sasl2_fast: Fix traceback when no cb_data is available (thanks riau) We already verify (earlier in the process) that cb_data is present if we are using a mechanism that requires it.
author Matthew Wild <mwild1@gmail.com>
date Wed, 19 Jun 2024 13:53:12 +0100
parents e67fc7b66c13
children
line wrap: on
line diff
--- a/mod_sasl2_fast/mod_sasl2_fast.lua	Sat Jun 08 03:28:25 2024 -0500
+++ b/mod_sasl2_fast/mod_sasl2_fast.lua	Wed Jun 19 13:53:12 2024 +0100
@@ -49,7 +49,7 @@
 			log("debug", "Looking for %s token %s/%s", mechanism, username, key);
 			token = token_store:get(username, key);
 			if token and token.mechanism == mechanism then
-				local expected_hash = hmac_f(token.secret, "Initiator"..cb_data);
+				local expected_hash = hmac_f(token.secret, "Initiator"..(cb_data or ""));
 				if hash.equals(expected_hash, token_hash) then
 					local current_time = now();
 					if token.expires_at < current_time then
@@ -77,7 +77,7 @@
 						log("debug", "FAST token due for rotation (age: %d)", current_time - token.issued_at);
 						rotation_needed = true;
 					end
-					return true, username, hmac_f(token.secret, "Responder"..cb_data), rotation_needed;
+					return true, username, hmac_f(token.secret, "Responder"..(cb_data or "")), rotation_needed;
 				end
 			end
 			if not tried_current_token then