# HG changeset patch # User Matthew Wild # Date 1274274139 -3600 # Node ID 31e24026e4fdbc9f6f1898bdb9940eb71cac243e # Parent 4ca382e8a4c5183d74aa2a47c4266f2f840948ba mod_tcpproxy: Handle gracefully invalid base64 data, fixes #2 (thanks dersd) diff -r 4ca382e8a4c5 -r 31e24026e4fd mod_tcpproxy/mod_tcpproxy.lua --- a/mod_tcpproxy/mod_tcpproxy.lua Sat May 15 23:05:53 2010 +0500 +++ b/mod_tcpproxy/mod_tcpproxy.lua Wed May 19 14:02:19 2010 +0100 @@ -84,7 +84,14 @@ elseif ibb_tag.name == "data" then local conn = open_connections[stanza.attr.from][ibb_tag.attr.sid]; if conn then - conn:write(unb64(ibb_tag:get_text())); + local data = unb64(ibb_tag:get_text()); + if data then + conn:write(data); + else + return origin.send( + st.error_reply(stanza, "modify", "bad-request", "Invalid data (base64?)") + ); + end else return origin.send(st.error_reply(stanza, "cancel", "item-not-found")); end