Committer  : klmitch
CVSROOT    : /cvsroot/undernet-ircu
Module     : ircu2.10
Branch tags: u2_10_12_branch
Commit time: 2008-01-03 00:07:31 UTC

Modified files:
  Tag: u2_10_12_branch
     ChangeLog ircd/m_burst.c

Log message:

Author: Jan Krueger <[EMAIL PROTECTED]> (by way of Kev <[EMAIL PROTECTED]>)
Log message:

Correct a parsing problem with ms_burst() that could cause an overrun when
processing bursts with oplevels.

---------------------- diff included ----------------------
Index: ircu2.10/ChangeLog
diff -u ircu2.10/ChangeLog:1.710.2.225 ircu2.10/ChangeLog:1.710.2.226
--- ircu2.10/ChangeLog:1.710.2.225      Fri Dec 28 07:52:43 2007
+++ ircu2.10/ChangeLog  Wed Jan  2 16:07:21 2008
@@ -1,3 +1,13 @@
+2008-01-02  Kevin L. Mitchell  <[EMAIL PROTECTED]>
+
+       * ircd/m_burst.c (ms_burst): surround protocol_violation() and
+       break in braces to do what Jan Krueger was trying to do...
+
+2008-01-03  Jan Krueger  <[EMAIL PROTECTED]>
+
+       * ircd/m_burst.c: prevent leaking the next nick into the current one's
+       oplevel. Add protocol_violation when an invalid nick flag appears.
+
 2007-12-28  Kevin L. Mitchell  <[EMAIL PROTECTED]>
 
        * ircd/channel.c: add MODE_REGISTERED, mapped to +R; arrange to
Index: ircu2.10/ircd/m_burst.c
diff -u ircu2.10/ircd/m_burst.c:1.40.2.5 ircu2.10/ircd/m_burst.c:1.40.2.6
--- ircu2.10/ircd/m_burst.c:1.40.2.5    Sun May 20 08:01:19 2007
+++ ircu2.10/ircd/m_burst.c     Wed Jan  2 16:07:21 2008
@@ -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_burst.c,v 1.40.2.5 2007/05/20 15:01:19 entrope Exp $
+ * $Id: m_burst.c,v 1.40.2.6 2008/01/03 00:07:21 klmitch Exp $
  */
 
 /*
@@ -507,10 +507,13 @@
                  do {
                    level_increment = 10 * level_increment + *ptr++ - '0';
                  } while (IsDigit(*ptr));
+                 --ptr;
                  oplevel += level_increment;
                }
-               else /* I don't recognize that flag */
+               else { /* I don't recognize that flag */
+                 protocol_violation(sptr, "Invalid flag '%c' in nick part of 
burst", *ptr);
                  break; /* so stop processing */
+               }
              }
            }
          }
----------------------- End of diff -----------------------
_______________________________________________
Patches mailing list
[email protected]
http://undernet.sbg.org/mailman/listinfo/patches

Reply via email to