Committer  : entrope
CVSROOT    : /cvsroot/undernet-ircu
Module     : ircu2.10
Commit time: 2004-09-11 17:01:00 UTC

Modified files:
     ChangeLog ircd/ircd_relay.c ircd/m_wallchops.c
     ircd/m_wallvoices.c

Log message:

Don't allow remote servers to send messages to our &channels (Bug #721494)
Rework of Kev's patch to do the same fix.

---------------------- diff included ----------------------
Index: ircu2.10/ChangeLog
diff -u ircu2.10/ChangeLog:1.459 ircu2.10/ChangeLog:1.460
--- ircu2.10/ChangeLog:1.459    Sat Sep 11 08:58:01 2004
+++ ircu2.10/ChangeLog  Sat Sep 11 10:00:50 2004
@@ -1,3 +1,13 @@
+2004-09-11  Michael Poole <[EMAIL PROTECTED]>
+
+       * ircd/ircd_relay.c (server_relay_channel_message,
+       server_relay_channel_notice): Do not allow other servers to send
+       or relay to local channels.
+
+       * ircd/m_wallchops (ms_wallchops): Likewise.
+
+       * ircd/m_wallvoices (ms_wallvoices): Likewise.
+
 2004-09-11  Kevin L Mitchell  <[EMAIL PROTECTED]>
 
        * ircd/gline.c (gline_add): fix GLINE logging (Bug #750927)
Index: ircu2.10/ircd/ircd_relay.c
diff -u ircu2.10/ircd/ircd_relay.c:1.13 ircu2.10/ircd/ircd_relay.c:1.14
--- ircu2.10/ircd/ircd_relay.c:1.13     Mon May 10 19:10:29 2004
+++ ircu2.10/ircd/ircd_relay.c  Sat Sep 11 10:00:50 2004
@@ -20,7 +20,7 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: ircd_relay.c,v 1.13 2004/05/11 02:10:29 entrope Exp $
+ * $Id: ircd_relay.c,v 1.14 2004/09/11 17:00:50 entrope Exp $
  */
 #include "config.h"
 
@@ -110,7 +110,7 @@
   assert(0 != name);
   assert(0 != text);
 
-  if (0 == (chptr = FindChannel(name))) {
+  if (IsLocalChannel(name) || 0 == (chptr = FindChannel(name))) {
     /*
      * XXX - do we need to send this back from a remote server?
      */
@@ -136,7 +136,7 @@
   assert(0 != name);
   assert(0 != text);
 
-  if (0 == (chptr = FindChannel(name)))
+  if (IsLocalChannel(name) || 0 == (chptr = FindChannel(name)))
     return;
   /*
    * This first: Almost never a server/service
Index: ircu2.10/ircd/m_wallchops.c
diff -u ircu2.10/ircd/m_wallchops.c:1.7 ircu2.10/ircd/m_wallchops.c:1.8
--- ircu2.10/ircd/m_wallchops.c:1.7     Mon May 10 19:10:27 2004
+++ ircu2.10/ircd/m_wallchops.c Sat Sep 11 10:00:50 2004
@@ -20,7 +20,7 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: m_wallchops.c,v 1.7 2004/05/11 02:10:27 entrope Exp $
+ * $Id: m_wallchops.c,v 1.8 2004/09/11 17:00:50 entrope Exp $
  */
 
 /*
@@ -143,7 +143,7 @@
   if (parc < 3 || !IsUser(sptr))
     return 0;
 
-  if ((chptr = FindChannel(parv[1]))) {
+  if (!IsLocalChannel(parv[1]) && (chptr = FindChannel(parv[1]))) {
     if (client_can_send_to_channel(sptr, chptr, 0)) {
       sendcmdto_channel_butone(sptr, CMD_WALLCHOPS, chptr, cptr,
                               SKIP_DEAF | SKIP_BURST | SKIP_NONOPS,
Index: ircu2.10/ircd/m_wallvoices.c
diff -u ircu2.10/ircd/m_wallvoices.c:1.4 ircu2.10/ircd/m_wallvoices.c:1.5
--- ircu2.10/ircd/m_wallvoices.c:1.4    Mon May 10 19:10:27 2004
+++ ircu2.10/ircd/m_wallvoices.c        Sat Sep 11 10:00:50 2004
@@ -19,7 +19,7 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: m_wallvoices.c,v 1.4 2004/05/11 02:10:27 entrope Exp $
+ * $Id: m_wallvoices.c,v 1.5 2004/09/11 17:00:50 entrope Exp $
  */
 
 /*
@@ -142,7 +142,7 @@
   if (parc < 3 || !IsUser(sptr))
     return 0;
 
-  if ((chptr = FindChannel(parv[1]))) {
+  if (!IsLocalChannel(parv[1]) && (chptr = FindChannel(parv[1]))) {
     if (client_can_send_to_channel(sptr, chptr, 0)) {
       sendcmdto_channel_butone(sptr, CMD_WALLVOICES, chptr, cptr,
                               SKIP_DEAF | SKIP_BURST | SKIP_NONVOICES, 
----------------------- End of diff -----------------------

Reply via email to