COMMAND
ircd
SYSTEMS AFFECTED
ircd with ircu based code
PROBLEM
Kevin Day found following. Most irc networks using ircu based
servers have a bug that can cause users to segfault the server.
In m_join, the code doesn't check to see if get_channel returned
failure (by returning NULL). This is present in 2.10.06, lulea-r,
ann-arbor, plano, Gothenburq, and toronto are for sure suseptible
(they crashed).
SOLUTION
While the line numbers will probably be off, this patch will work
in most ircu based servers.
--- ircd/channel.c Tue Jul 13 19:58:46 1999
+++ ircd/channel.c Tue Jul 13 20:05:31 1999
@@ -2004,6 +2004,12 @@
chptr = get_channel (sptr, name, !CREATE); /* need the TS -Kev */
+ if (!chptr) {
+ sendto_one (sptr, err_str (ERR_NOSUCHCHANNEL),
+ me.name, parv[0], name);
+ return(0);
+ }
+
sendto_serv_butone (cptr, ":%s MODE %s +%s%s %lu", me.name, name,
sendmode ? "o " : "", sendmode ? parv[0] : "",
chptr->creationtime); /* send the MODE to the