diff mod_tcpproxy/mod_tcpproxy.lua @ 4853:3804332c204e

mod_tcpproxy: Reject missing or non-number block-size, as per XEP-0047
author Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
date Fri, 07 Jan 2022 19:55:03 +0100
parents db8b256f51ff
children
line wrap: on
line diff
--- a/mod_tcpproxy/mod_tcpproxy.lua	Thu Jan 06 17:45:15 2022 +0100
+++ b/mod_tcpproxy/mod_tcpproxy.lua	Fri Jan 07 19:55:03 2022 +0100
@@ -44,13 +44,16 @@
 	if ibb_tag.name == "open" then
 		-- Starting a new stream
 		local to_host, to_port = ibb_tag.attr[host_attr], ibb_tag.attr[port_attr];
-		local jid, sid = stanza.attr.from, ibb_tag.attr.sid;
+		local jid, sid, block_size = stanza.attr.from, ibb_tag.attr.sid, ibb_tag.attr["block-size"];
 		if not (to_host and to_port) then
 			origin.send(st.error_reply(stanza, "modify", "bad-request", "No host/port specified"));
 			return true;
 		elseif not sid or sid == "" then
 			origin.send(st.error_reply(stanza, "modify", "bad-request", "No sid specified"));
 			return true;
+		elseif not block_size or not tonumber(block_size) then
+			origin.send(st.error_reply(stanza, "modify", "bad-request", "Bad block-size attribute"));
+			return true;
 		elseif ibb_tag.attr.stanza ~= "message" then
 			origin.send(st.error_reply(stanza, "modify", "bad-request", "Only 'message' stanza transport is supported"));
 			return true;