123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- $OpenBSD: patch-ircd_channel_c,v 1.1 2003/11/11 15:17:34 margarida Exp $
- --- ircd/channel.c.orig 2000-06-06 23:34:27.000000000 +0100
- +++ ircd/channel.c 2003-11-09 00:03:46.000000000 +0000
- @@ -1966,7 +1966,7 @@ char *parv[];
- Reg Link *lp;
- Reg aChannel *chptr;
- Reg char *name, *key = NULL;
- - int i, flags = 0;
- + int i, tmplen, flags = 0;
- char *p = NULL, *p2 = NULL, *s, chop[5];
-
- if (parc < 2 || *parv[1] == '\0')
- @@ -2115,10 +2115,20 @@ char *parv[];
- parv[0]), name);
- continue;
- }
- + tmplen = strlen(name);
- + if (i + tmplen + 2 /* comma and \0 */
- + >= sizeof(jbuf) )
- + {
- +
- + break;
- +
- + }
- if (*jbuf)
- - (void)strcat(jbuf, ",");
- - (void)strncat(jbuf, name, sizeof(jbuf) - i - 1);
- - i += strlen(name)+1;
- + {
- + jbuf[i++] = ',';
- + }
- + (void)strcpy(jbuf + i, name);
- + i += tmplen;
- }
-
- p = NULL;
- @@ -2270,6 +2280,16 @@ char *parv[];
- parv[0], name, chop);
- else if (*chptr->chname != '&')
- {
- + /* ":" (1) "nick" (NICKLEN) " JOIN :" (7), comma (1)
- + ** possible chop (4), ending \r\n\0 (3) = 16
- + ** must fit in the cbuf as well! --B. */
- + if (strlen(cbuf) + strlen(name) + NICKLEN + 16
- + >= sizeof(cbuf))
- + {
- + sendto_serv_butone(cptr, ":%s JOIN :%s",
- + parv[0], cbuf);
- + cbuf[0] = '\0';
- + }
- if (*cbuf)
- strcat(cbuf, ",");
- strcat(cbuf, name);
|