Committer  : klmitch
CVSROOT    : /cvsroot/undernet-ircu
Module     : ircu2.10
Branch tags: u2_10_11_07
Commit time: 2004-09-11 16:05:50 UTC

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

Log message:

Author: Kev <[EMAIL PROTECTED]>
Log message:

Don't allow remote servers to send messages to our &channels (Bug #721494)

---------------------- diff included ----------------------
Index: ircu2.10/ChangeLog
diff -u ircu2.10/ChangeLog:1.290.2.130.2.16 ircu2.10/ChangeLog:1.290.2.130.2.17
--- ircu2.10/ChangeLog:1.290.2.130.2.16 Sat Sep 11 08:50:28 2004
+++ ircu2.10/ChangeLog  Sat Sep 11 09:05:39 2004
@@ -1,5 +1,14 @@
 2004-09-11  Kevin L Mitchell  <[EMAIL PROTECTED]>
 
+       * ircd/m_wallvoices.c (ms_wallvoices): Don't accept & channel
+       WALLVOICES from servers (Bug #721494)
+
+       * ircd/m_wallchops.c (ms_wallchops): Don't accept & channel
+       WALLCHOPS from servers (Bug #721494)
+
+       * ircd/ircd_relay.c: Don't accept & channel messages/notices from
+       servers (Bug #721494)
+
        * ircd/gline.c (gline_add): fix GLINE logging (Bug #750927)
 
        * ircd/channel.c: removing limits shouldn't gobble an argument;
Index: ircu2.10/ircd/ircd_relay.c
diff -u ircu2.10/ircd/ircd_relay.c:1.8.2.2 ircu2.10/ircd/ircd_relay.c:1.8.2.2.10.1
--- ircu2.10/ircd/ircd_relay.c:1.8.2.2  Thu Oct 10 02:13:25 2002
+++ ircu2.10/ircd/ircd_relay.c  Sat Sep 11 09:05:39 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.8.2.2 2002/10/10 09:13:25 isomer Exp $
+ * $Id: ircd_relay.c,v 1.8.2.2.10.1 2004/09/11 16:05:39 klmitch Exp $
  */
 #include "config.h"
 
@@ -110,7 +110,7 @@
   assert(0 != name);
   assert(0 != text);
 
-  if (0 == (chptr = FindChannel(name))) {
+  if (*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 (*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.5.2.2 ircu2.10/ircd/m_wallchops.c:1.5.2.2.6.1
--- ircu2.10/ircd/m_wallchops.c:1.5.2.2 Tue Jan  7 03:15:44 2003
+++ ircu2.10/ircd/m_wallchops.c Sat Sep 11 09:05:40 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.5.2.2 2003/01/07 11:15:44 isomer Exp $
+ * $Id: m_wallchops.c,v 1.5.2.2.6.1 2004/09/11 16:05:40 klmitch Exp $
  */
 
 /*
@@ -143,7 +143,7 @@
   if (parc < 3 || !IsUser(sptr))
     return 0;
 
-  if ((chptr = FindChannel(parv[1]))) {
+  if (*parv[1] != '&' && (chptr = FindChannel(parv[1]))) {
     if (client_can_send_to_channel(sptr, chptr)) {
       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.1.4.2 ircu2.10/ircd/m_wallvoices.c:1.1.4.2.6.1
--- ircu2.10/ircd/m_wallvoices.c:1.1.4.2        Tue Jan  7 03:15:44 2003
+++ ircu2.10/ircd/m_wallvoices.c        Sat Sep 11 09:05:40 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.1.4.2 2003/01/07 11:15:44 isomer Exp $
+ * $Id: m_wallvoices.c,v 1.1.4.2.6.1 2004/09/11 16:05:40 klmitch Exp $
  */
 
 /*
@@ -142,7 +142,7 @@
   if (parc < 3 || !IsUser(sptr))
     return 0;
 
-  if ((chptr = FindChannel(parv[1]))) {
+  if (*parv[1] != '&' && (chptr = FindChannel(parv[1]))) {
     if (client_can_send_to_channel(sptr, chptr)) {
       sendcmdto_channel_butone(sptr, CMD_WALLVOICES, chptr, cptr,
                               SKIP_DEAF | SKIP_BURST | SKIP_NONVOICES, 
----------------------- End of diff -----------------------

Reply via email to