# HG changeset patch # User Kim Alvefur # Date 1630272379 -7200 # Node ID f0ffa8cf3ce6b7062a598dfeefe8ff702e817742 # Parent 524a9103fb45d672be3b0a8f8b0847691ef87640 mod_external_services: Validate required attributes on credentials requests diff -r 524a9103fb45 -r f0ffa8cf3ce6 mod_external_services/mod_external_services.lua --- a/mod_external_services/mod_external_services.lua Wed Sep 01 22:41:27 2021 +0100 +++ b/mod_external_services/mod_external_services.lua Sun Aug 29 23:26:19 2021 +0200 @@ -168,7 +168,7 @@ local action = stanza.tags[1]; if origin.type ~= "c2s" then - origin.send(st.error_reply(stanza, "auth", "forbidden")); + origin.send(st.error_reply(stanza, "auth", "forbidden", "The 'port' and 'type' attributes are required.")); return true; end @@ -181,6 +181,11 @@ local requested_credentials = {}; for service in action:childtags("service") do + if not service.attr.type or not service.attr.host then + origin.send(st.error_reply(stanza, "modify", "bad-request")); + return true; + end + table.insert(requested_credentials, { type = service.attr.type; host = service.attr.host;