[IRCServices Coding] A bug in 5.0.28 ?

CyberDems cyberdems at cyberdems.za.net
Sun Mar 7 06:31:51 PST 2004


according to -debug -nofork:
[Feb 27 18:38:36.683142 2004] debug: Sent: :services.rsachat.za.net PONG
services.rsachat.za.net irc.rsachat.za.net
[Feb 27 18:38:45.607328 2004] debug: Received: :irc.rsachat.za.net SJOIN
1077899924 1077899924 #chat + :@CyberDems
[Feb 27 18:38:45.607453 2004] protocol/rsachat: debug: CyberDems SJOINs
#chat
[Feb 27 18:38:45.607522 2004] debug: Creating channel #chat
[Feb 27 18:38:45.607601 2004] debug: Sent: :services.rsachat.za.net SJOIN
1077889282 #chat + :@CyberDems
[Feb 27 18:38:45.607654 2004] debug: Sent: :services.rsachat.za.net MODE
#chat +o :CyberDems
Segmentation fault (core dumped)
bash$

bash$ ./ircservices
Initialization successful, starting IRC Services.
bash$ cat data/ircservices.log
[Feb 12 18:15:03 2004] IRC Services 5.0.28+rsachat(r1) starting up
[Feb 12 18:15:03 2004] unknown message from server (:irc.rsachat.za.net 451
PING :Register first.)
[Feb 12 18:15:03 2004] user: New maximum user count: 1
[Feb 12 18:15:03 2004] protocol/rsachat: irc.rsachat.za.net
[Feb 12 18:15:03 2004] PANIC! signal 11, buffer = :irc.rsachat.za.net SJOIN
0 0 #chat +tnr  :@CyberDems
[Feb 12 18:15:03 2004] Services terminating: Segmentation fault
[Feb 12 18:15:03 2004] FATAL: Caught signal 11 (Segmentation fault) while
shutting down
bash$

anyone have the slightest clue what this means?
commenting out     do_sjoin(source, ac, av);  under the "void m_sjoin"
section of the protocol's .c file causes the segfaulting to stop (but that
obviously causes chanserv to stop detecting users joining the channel),
meaning its got something to do with that? the protocol file worked
perfectly on version 5.0.23.
I also noted how it only causes problems on registered channels that have
had a topic set on them.. joining other registered channels doesnt cause the
segfault.

It probably has something to do with the change from
set_topic(c, topic, u->nick, now);
to
set_topic(s_ChanServ, c, topic, u->nick, now);
under
static void do_cstopic(User *u)    in modules/chanserv/main.c,
because when i commented that out, it stopped the segfaults, but obviously
didnt set the topics, even when KEEPTOPIC was enabled.

Help would be great.

Dimitri Pappas
irc.rsachat.za.net Admin/Founder