changeset 2295:eb96666502f5

Carbons: Check barejid in sent messages, too
author franky
date Sun, 29 Jan 2017 20:44:11 +0100
parents 2a9569fd7644
children 72540f37f679
files mcabber/mcabber/xmpp.c
diffstat 1 files changed, 7 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/mcabber/mcabber/xmpp.c	Thu Jan 26 22:51:20 2017 +0100
+++ b/mcabber/mcabber/xmpp.c	Sun Jan 29 20:44:11 2017 +0100
@@ -1136,6 +1136,13 @@
     LmMessageNode *xenc;
     const char *carbon_name = x->name;
     carbons = TRUE;
+
+    // Check envelope JID for carbon messages
+    if (!jid_equal(lm_connection_get_jid(lconnection), bjid)) {
+      scr_LogPrint(LPRINT_LOGNORM, "Received invalid carbon copy from %s.", bjid);
+      goto handle_messages_return;
+    }
+
     // Go 1 level deeper to the forwarded message
     x = lm_message_node_find_xmlns(x, NS_FORWARD);
     if (x)
@@ -1158,15 +1165,6 @@
 
     // Parse a message that is send to one of our other resources
     if (!g_strcmp0(carbon_name, "received")) {
-      // Check envelope JID for carbon messages
-      gchar *self_bjid = jidtodisp(lm_connection_get_jid(lconnection));
-      if (g_strcmp0(self_bjid, bjid)) {
-        scr_LogPrint(LPRINT_LOGNORM, "Received invalid carbon copy!");
-        g_free(self_bjid);
-        goto handle_messages_return;
-      }
-      g_free(self_bjid);
-
       from = lm_message_node_get_attribute(x, "from");
       if (!from) {
         scr_LogPrint(LPRINT_LOGNORM, "Malformed carbon copy!");