]> granicus.if.org Git - ejabberd/commitdiff
* src/ejabberd_c2s.erl: Bugfix in "from" attribute checking
authorAlexey Shchepin <alexey@process-one.net>
Fri, 12 Dec 2008 13:08:00 +0000 (13:08 +0000)
committerAlexey Shchepin <alexey@process-one.net>
Fri, 12 Dec 2008 13:08:00 +0000 (13:08 +0000)
SVN Revision: 1727

ChangeLog
src/ejabberd_c2s.erl

index d8fa25c1f57beef10e2e0e8a8e6e8a7a6e24fe83..c535e951cc4f747a4533874ef7123d8105ffa73c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2008-12-12  Alexey Shchepin  <alexey@process-one.net>
+
+       * src/ejabberd_c2s.erl: Bugfix in "from" attribute checking
+
 2008-12-09  Christophe Romain <christophe.romain@process-one.net>
 
        * src/mod_pubsub/mod_pubsub.erl: prevent publish items with invalid
index 246218993916efc199b05caff164b67e5c6d810c..7fcff5b41dce791a7344705f400d8e6ac9cf2ca8 100644 (file)
@@ -1983,26 +1983,20 @@ is_ip_blacklisted({IP,_Port}) ->
 check_from(El, FromJID) ->
     case xml:get_tag_attr("from", El) of
        false ->
-           jlib:replace_from(FromJID, El);
-       {value, JIDElString} ->
-           JIDEl = jlib:string_to_jid(JIDElString),
-           case JIDEl#jid.lresource of 
-               "" ->
-                   %% Matching JID: The stanza is ok
-                   if JIDEl#jid.luser == FromJID#jid.luser andalso
-                      JIDEl#jid.lserver == FromJID#jid.lserver ->
+           El;
+       {value, SJID} ->
+           JID = jlib:string_to_jid(SJID),
+           case JID of
+               error ->
+                   'invalid-from';
+               #jid{} ->
+                   if
+                       (JID#jid.luser == FromJID#jid.luser) and
+                       (JID#jid.lserver == FromJID#jid.lserver) and
+                       (JID#jid.lresource == FromJID#jid.lresource) ->
                            El;
-                      true ->
+                       true ->
                            'invalid-from'
-                   end;
-               _ ->
-                   %% Matching JID: The stanza is ok
-                   if JIDEl#jid.luser == FromJID#jid.luser andalso
-                      JIDEl#jid.lserver == FromJID#jid.lserver andalso 
-                      JIDEl#jid.lresource == FromJID#jid.lresource ->
-                           El;
-                      true ->
-                          'invalid-from'
                    end
            end
     end.