From: Evgeniy Khramtsov Date: Mon, 17 Apr 2017 22:38:35 +0000 (+0300) Subject: Function fix_from_to/2 should not crash when 'from' is undefined X-Git-Tag: 17.06-beta~137 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7c9415356db372663545c997794a370387383d0c;p=ejabberd Function fix_from_to/2 should not crash when 'from' is undefined Fixes #1678 --- diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl index c1f1e2fa5..e0a10e659 100644 --- a/src/ejabberd_c2s.erl +++ b/src/ejabberd_c2s.erl @@ -867,13 +867,17 @@ get_conn_type(State) -> -spec fix_from_to(xmpp_element(), state()) -> stanza(). fix_from_to(Pkt, #{jid := JID}) when ?is_stanza(Pkt) -> #jid{luser = U, lserver = S, lresource = R} = JID, - From = xmpp:get_from(Pkt), - From1 = case jid:tolower(From) of - {U, S, R} -> JID; - {U, S, _} -> jid:replace_resource(JID, From#jid.resource); - _ -> From - end, - xmpp:set_from_to(Pkt, From1, JID); + case xmpp:get_from(Pkt) of + undefined -> + Pkt; + From -> + From1 = case jid:tolower(From) of + {U, S, R} -> JID; + {U, S, _} -> jid:replace_resource(JID, From#jid.resource); + _ -> From + end, + xmpp:set_from_to(Pkt, From1, JID) + end; fix_from_to(Pkt, _State) -> Pkt.