From: Kevin L. Mitchell Date: Tue, 2 Apr 2002 04:27:36 +0000 (+0000) Subject: Author: Kev X-Git-Url: http://git.pk910.de/?p=ircu2.10.12-pk.git;a=commitdiff_plain;h=c7ba3a6c7116a0446e6f24d71c377aa5a48b663b Author: Kev Log message: What a screw case. In the case of many, many joins, we were overflowing an array in the joinbuf because we were adding a channel to the array, then forgetting to empty the array when we flushed--because they weren't supposed to have been added in the first place! This should stop them from being added anymore, and hopefully fix our Amsterdam* crashes. (pull-up from u2_10_11 branch) git-svn-id: file:///home/klmitch/undernet-ircu/undernet-ircu-svn/ircu2/trunk@697 c9e4aea6-c8fd-4c43-8297-357d70d61c8c --- diff --git a/ChangeLog b/ChangeLog index eb38813..6fb058b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2002-04-01 Kevin L Mitchell + + * ircd/channel.c (joinbuf_join): don't add a channel to the list + in the joinbuf unless when we flush it, we empty the list + 2002-04-02 Andrew Miller * ircd/ircd_parser.y: Added ircd parser, lexer, to replace the old configuration file format. diff --git a/ircd/channel.c b/ircd/channel.c index 93c4162..11a0f02 100644 --- a/ircd/channel.c +++ b/ircd/channel.c @@ -3156,7 +3156,8 @@ joinbuf_join(struct JoinBuf *jbuf, struct Channel *chan, unsigned int flags) chan, jbuf->jb_source); } - if (jbuf->jb_type == JOINBUF_TYPE_PARTALL || IsLocalChannel(chan->chname)) + if (jbuf->jb_type == JOINBUF_TYPE_PARTALL || + jbuf->jb_type == JOINBUF_TYPE_JOIN || IsLocalChannel(chan->chname)) return; /* don't send to remote */ /* figure out if channel name will cause buffer to be overflowed */