diff -uNr ircservices-5.0.47/Changes ircservices-5.0.48/Changes --- ircservices-5.0.47/Changes 2005-02-23 02:03:51 +0900 +++ ircservices-5.0.48/Changes 2005-02-23 03:54:37 +0900 @@ -1,5 +1,6 @@ Version 5.0 ----------- +2005/02/23 .48 Fix careless bug leading to possible crash on exit or rehash. 2005/02/23 .47 Channels no longer expire while an auto-op user is in the channel; expiration is delayed until the time specified by CSExpire after the last such user leaves the channel. diff -uNr ircservices-5.0.47/modules/chanserv/main.c ircservices-5.0.48/modules/chanserv/main.c --- ircservices-5.0.47/modules/chanserv/main.c 2005-02-23 03:31:49 +0900 +++ ircservices-5.0.48/modules/chanserv/main.c 2005-02-23 04:03:20 +0900 @@ -1573,9 +1573,12 @@ ci->time_registered = time(NULL); notice_lang(s_ChanServ, u, CHAN_FORBID_SUCCEEDED, chan); c = get_channel(chan); - if (c) + if (c) { + ci->c = c; /* for completeness */ + c->ci = ci; clear_channel(c, CLEAR_USERS, "Use of this channel has been forbidden"); + } } else { module_log("Valid FORBID for %s by %s!%s@%s failed", ci->name, u->nick, u->username, u->host); @@ -1958,6 +1961,7 @@ remove_callback(NULL, "channel umode change", do_channel_umode_change); remove_callback(NULL, "channel mode change", do_channel_mode_change); remove_callback(NULL, "channel delete", do_channel_delete); + remove_callback(NULL, "channel PART", do_channel_part); remove_callback(NULL, "channel JOIN", do_channel_join); remove_callback(NULL, "channel JOIN check", do_channel_join_check); remove_callback(NULL, "channel create", do_channel_create); diff -uNr ircservices-5.0.47/version.sh ircservices-5.0.48/version.sh --- ircservices-5.0.47/version.sh 2005-02-23 03:14:14 +0900 +++ ircservices-5.0.48/version.sh 2005-02-23 03:54:46 +0900 @@ -6,7 +6,7 @@ # $PROGRAM is the string returned as the first part of a /VERSION reply, # and must not contain spaces. It is not used anywhere else. PROGRAM=ircservices -VERSION=5.0.47 +VERSION=5.0.48 # Increment Services build number if [ -f version.c ] ; then