[IRCServices] Bug Report, forbidden channel dropped by founder

Imran Ali Rashid u970042 at giki.edu.pk
Thu Mar 22 01:58:00 PST 2001


Could the other people on the list check if this bug is still present in newer versions of services.
Please read through completely as multiple scenarios are defined. Oh and this is a long mail and
not for the faint of heart.
:-)

Platform: RedHat Linux 6.2
ircd: DreamForge 4.67
services: 4.4.8

The Bug Description:
Normal behaviour for a forbidden channel disallows a forbidden channel to be dropped.
However, some circumstances might be arranged via which even if a channel is forbidden,
the person who is the founder may drop the channel.
Complete Investigation reveals that this occurs if the founder of the channel is changed to
any nick. That new nick(may also be the same as before) may drop the channel even if
forbidden and henceonwards, register it again, thereby bypassing the forbidden restriction.

I saw this in the changes file. Is this a reference to the same bug that I have just described above?

2001/01/30 Setting FORBID for a nick/channel now affects current
      users of the nick/channel.  Reported by Michael Smith
      <mike at chat.za.net>

What is interesting to note is that the person need not necessarily be in the channel.

Here are shown log entries for two channels, in the first scenario, someone else did it, and
then onwards I experimented and reproduced the results.
The third set of log was done differently to conclusively prove that the founder change causes
this effect. The fourth and fifth scenarios have debug logs, and are slightly different from each
other as explained in scenario 5.

Please tolerate the wrapping done by the mail client.

--------------------------------------------------------

Scenario 1: This is what started me thinking.

[Mar 21 21:09:39 2001] ChanServ: Changing founder of #10thbatch to FeRRaRi by
FeRRaRi!---------- at station028.pc-lab.giki.edu.pk
[Mar 21 21:15:33 2001] ChanServ: Super_Genius set FORBID for channel #10thbatch
[Mar 21 21:23:52 2001] ChanServ: Attempt to register FORBIDden channel #10thbatch by
FeRRaRi!---------- at station028.pc-lab.giki.edu.pk
[Mar 21 21:24:05 2001] ChanServ: Channel #10thbatch dropped by FeRRaRi!---------- at station028.pc-lab.giki.edu.pk
[Mar 21 21:24:23 2001] ChanServ: Channel #10thbatch registered by FeRRaRi!---------- at station028.pc-lab.giki.edu.pk
[Mar 21 21:27:41 2001] ChanServ: Changing founder of #10thbatch to FeRRaRi by
FeRRaRi!---------- at station028.pc-lab.giki.edu.pk
[Mar 21 21:37:59 2001] ChanServ: Channel #10thbatch dropped by Super_Genius!genius at genius.hostel1.giki.edu.pk
[Mar 21 21:38:05 2001] ChanServ: Super_Genius set FORBID for channel #10thbatch
[Mar 21 21:40:20 2001] ChanServ: Attempt to register FORBIDden channel #10thbatch by
FeRRaRi!---------- at station028.pc-lab.giki.edu.pk

--------------------------------------------------------

Senario 2: Note that no one is in the channel after registration is completed

[Mar 22 03:17:00 2001] ChanServ: Channel #test dropped by Super_Genius!genius at genius.hostel1.giki.edu.pk
[Mar 22 03:17:19 2001] ChanServ: Channel #test registered by Car`a`carn!genius at genius.hostel1.giki.edu.pk
---------- Plain_Genius identified for the channel here, to enable him to change the founder.
[Mar 22 03:17:38 2001] ChanServ: Changing founder of #test to Plain_Genius by
Plain_Genius!u970042 at genius.hostel1.giki.edu.pk
[Mar 22 03:17:49 2001] ChanServ: Super_Genius set FORBID for channel #test
[Mar 22 03:17:57 2001] ChanServ: Channel #test dropped by Plain_Genius!u970042 at genius.hostel1.giki.edu.pk

---------------------------------------------------------

Scenario 3:
At all times, Plain_Genius was identified to nickserv.
And in this scenario, Plain_Genius did not give chanserv the password to identify for the channel.

[Mar 22 03:31:10 2001] ChanServ: Channel #test registered by Car`a`carn!genius at genius.hostel1.giki.edu.pk
[Mar 22 03:31:20 2001] ChanServ: Changing founder of #test to Plain_Genius by
Car`a`carn!genius at genius.hostel1.giki.edu.pk
[Mar 22 03:31:27 2001] ChanServ: Super_Genius set FORBID for channel #test
[Mar 22 03:31:32 2001] ChanServ: Channel #test dropped by Plain_Genius!u970042 at genius.hostel1.giki.edu.pk

---------------------------------------------------------

Scenario 4:
You can yourself see the sequence of events,
1. Server Root, Super_Genius sets services in debug mode
2. He changes nick to Car`a`carn
3. Registers channel #test as Car`a`carn
4. Car`a`carn sets founder as Plain_Genius
5. Car`a`carn changes nick to Super_Genius
6. Super_Genius sets forbid on the channel
7. Plain_Genius drops channel

[Mar 22 04:04:20 2001] OperServ: Super_Genius: set debug on
[Mar 22 04:04:20.801193 2001] Debug mode activated
[Mar 22 04:04:20.801313 2001] debug: Sent: :OperServ NOTICE Super_Genius :Services is now in debug mode.
[Mar 22 04:04:20.841301 2001] debug: Received: :Super_Genius NICK Car`a`carn :985215860
[Mar 22 04:04:20.841365 2001] debug: Super_Genius changes nick to Car`a`carn
[Mar 22 04:04:20.841485 2001] debug: Sent: :NickServ SVSMODE Car`a`carn :+r
[Mar 22 04:04:20.842101 2001] debug: Received: :Car`a`carn PRIVMSG ChanServ at services.hostel5.giki.edu.pk :register #test
123 hi
[Mar 22 04:04:20.842187 2001] ChanServ: Channel #test registered by Car`a`carn!genius at genius.hostel1.giki.edu.pk
[Mar 22 04:04:20.842270 2001] debug: Sent: :ChanServ NOTICE Car`a`carn :Channel #test registered under your nickname:
Car`a`carn
[Mar 22 04:04:20.842344 2001] debug: Sent: :ChanServ NOTICE Car`a`carn :Your channel password is 123 - remember it for
later use.
[Mar 22 04:04:20.842419 2001] debug: Sent: :ChanServ MODE #test +r
[Mar 22 04:04:20.842763 2001] debug: Received: :Car`a`carn PRIVMSG ChanServ at services.hostel5.giki.edu.pk :set #test
founder Plain_Genius
[Mar 22 04:04:20.842842 2001] ChanServ: Changing founder of #test to Plain_Genius by
Car`a`carn!genius at genius.hostel1.giki.edu.pk
[Mar 22 04:04:20.842919 2001] debug: Sent: :ChanServ NOTICE Car`a`carn :Founder of #test changed to Plain_Genius.
[Mar 22 04:04:22.215269 2001] debug: Received: :Car`a`carn NICK Super_Genius :985215862
[Mar 22 04:04:22.215344 2001] debug: Car`a`carn changes nick to Super_Genius
[Mar 22 04:04:22.215492 2001] debug: Sent: :NickServ SVSMODE Super_Genius :+r
[Mar 22 04:04:23.226173 2001] debug: Received: :Super_Genius PRIVMSG ChanServ at services.hostel5.giki.edu.pk :forbid #test
[Mar 22 04:04:23.226291 2001] ChanServ: Super_Genius set FORBID for channel #test
[Mar 22 04:04:23.226403 2001] debug: Sent: :ChanServ NOTICE Super_Genius :Channel #test is now forbidden.
[Mar 22 04:04:24.254009 2001] debug: Received: :Plain_Genius PRIVMSG ChanServ at services.hostel5.giki.edu.pk :drop #test
[Mar 22 04:04:24.254097 2001] ChanServ: Channel #test dropped by Plain_Genius!u970042 at genius.hostel1.giki.edu.pk
[Mar 22 04:04:24.254208 2001] debug: Sent: :ChanServ MODE #test -r
[Mar 22 04:04:24.254289 2001] debug: Sent: :ChanServ NOTICE Plain_Genius :Channel #test has been dropped.
[Mar 22 04:04:25.226395 2001] debug: Received: :Super_Genius PRIVMSG OperServ at services.hostel5.giki.edu.pk :set debug
off
[Mar 22 04:04:25.226468 2001] OperServ: Super_Genius: set debug off
[Mar 22 04:04:25.226519 2001] Debug mode deactivated

---------------------------------------------------------

Scenario 5:
Whats different in this scenario from the above is that forbid is set before changing founder.

1. Server Root, Super_Genius sets services in debug mode
2. He changes nick to Car`a`carn
3. Registers channel #test as Car`a`carn
5. Car`a`carn changes nick to Super_Genius
6. Super_Genius sets forbid on the channel
4. Super_Genius sets founder as Plain_Genius
7. Plain_Genius drops channel

[Mar 22 04:09:31 2001] OperServ: Super_Genius: set debug on
[Mar 22 04:09:31.204542 2001] Debug mode activated
[Mar 22 04:09:31.204659 2001] debug: Sent: :OperServ NOTICE Super_Genius :Services is now in debug mode.
[Mar 22 04:09:31.204718 2001] debug: Saving databases
[Mar 22 04:09:31.227593 2001] debug: Received: :Super_Genius NICK Car`a`carn :985216171
[Mar 22 04:09:31.227679 2001] debug: Super_Genius changes nick to Car`a`carn
[Mar 22 04:09:31.227810 2001] debug: Sent: :NickServ SVSMODE Car`a`carn :+r
[Mar 22 04:09:31.228145 2001] debug: Received: :Car`a`carn PRIVMSG ChanServ at services.hostel5.giki.edu.pk :register #test
123 hi
[Mar 22 04:09:31.228230 2001] ChanServ: Channel #test registered by Car`a`carn!genius at genius.hostel1.giki.edu.pk
[Mar 22 04:09:31.228314 2001] debug: Sent: :ChanServ NOTICE Car`a`carn :Channel #test registered under your nickname:
Car`a`carn
[Mar 22 04:09:31.228392 2001] debug: Sent: :ChanServ NOTICE Car`a`carn :Your channel password is 123 - remember it for
later use.
[Mar 22 04:09:31.228468 2001] debug: Sent: :ChanServ MODE #test +r
[Mar 22 04:09:32.669729 2001] debug: Received: :Car`a`carn NICK Super_Genius :985216172
[Mar 22 04:09:32.669810 2001] debug: Car`a`carn changes nick to Super_Genius
[Mar 22 04:09:32.669953 2001] debug: Sent: :NickServ SVSMODE Super_Genius :+r
[Mar 22 04:09:33.684802 2001] debug: Received: :Super_Genius PRIVMSG ChanServ at services.hostel5.giki.edu.pk :forbid #test
[Mar 22 04:09:33.684919 2001] ChanServ: Super_Genius set FORBID for channel #test
[Mar 22 04:09:33.685032 2001] debug: Sent: :ChanServ NOTICE Super_Genius :Channel #test is now forbidden.
[Mar 22 04:09:34.685061 2001] debug: Received: :Super_Genius PRIVMSG ChanServ at services.hostel5.giki.edu.pk :set #test
founder Plain_Genius
[Mar 22 04:09:34.685222 2001] debug: Sent: :ChanServ NOTICE Super_Genius :Channel #test may not be registered or used.
[Mar 22 04:09:35.667538 2001] debug: Received: :Plain_Genius PRIVMSG ChanServ at services.hostel5.giki.edu.pk :drop #test
[Mar 22 04:09:35.667622 2001] ChanServ: Channel #test dropped by Plain_Genius!u970042 at genius.hostel1.giki.edu.pk
[Mar 22 04:09:35.667732 2001] debug: Sent: :ChanServ MODE #test -r
[Mar 22 04:09:35.667813 2001] debug: Sent: :ChanServ NOTICE Plain_Genius :Channel #test has been dropped.
[Mar 22 04:09:36.659170 2001] debug: Received: :Super_Genius PRIVMSG OperServ at services.hostel5.giki.edu.pk :set debug
off
[Mar 22 04:09:36.659253 2001] OperServ: Super_Genius: set debug off
[Mar 22 04:09:36.659307 2001] Debug mode deactivated

Imran Ali Rashid