diff options
author | Kim Alvefur <zash@zash.se> | 2019-11-25 20:44:05 +0100 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2019-11-25 20:44:05 +0100 |
commit | b9875e5501fe7ab32465e4677a9f35b064be5099 (patch) | |
tree | 603e11e382185e757035e937142d1c8e03c45e87 | |
parent | e7c738ba3f21dce52cf4efe1bd0bbb7393d099cd (diff) | |
download | prosody-b9875e5501fe7ab32465e4677a9f35b064be5099.tar.gz prosody-b9875e5501fe7ab32465e4677a9f35b064be5099.zip |
util.stanza: Check that argument to reply is a stanza
-rw-r--r-- | spec/util_stanza_spec.lua | 6 | ||||
-rw-r--r-- | util/stanza.lua | 3 |
2 files changed, 9 insertions, 0 deletions
diff --git a/spec/util_stanza_spec.lua b/spec/util_stanza_spec.lua index 38503ab7..7d710888 100644 --- a/spec/util_stanza_spec.lua +++ b/spec/util_stanza_spec.lua @@ -170,6 +170,12 @@ describe("util.stanza", function() assert.are.equal(r.attr.type, "result"); assert.are.equal(#r.tags, 0, "A reply should not include children of the original stanza"); end); + + it("should reject not-stanzas", function () + assert.has.error_match(function () + st.reply(not "a stanza"); + end, "expected stanza"); + end); end); describe("#error_reply()", function() diff --git a/util/stanza.lua b/util/stanza.lua index 55c38c73..f46d5b30 100644 --- a/util/stanza.lua +++ b/util/stanza.lua @@ -434,6 +434,9 @@ local function iq(attr) end local function reply(orig) + if not is_stanza(orig) then + error("bad argument to reply: expected stanza, got "..type(orig)); + end return new_stanza(orig.name, orig.attr and { to = orig.attr.from, |