View Issue Details

IDProjectCategoryView StatusLast Update
0004883unrealircdpublic2017-03-06 10:09
ReporterPeGaSuS Assigned Tosyzop  
PriorityhighSeveritymajorReproducibilityalways
Status resolvedResolutionfixed 
PlatformunixOSUbuntu ServerOS Version16.04 LTS
Product Version4.0.11 
Fixed in Version4.0.12 
Summary0004883: ChanMode +f: IRCd not properly removing flood parameters after new mode set.
DescriptionAfter setting a flood parameter with /cs mode #chan lock set +f [params]:time and re-setting it with /cs mode #chan lock set [new-params]:time, the mlock is changed but the modes remain the same if we check them with /mode #chan.
Steps To ReproduceExample:
Enter a channel
Register it
Do /cs mode #chan lock set +f [5m#m1,5j#i1,3t]:2
Do /cs mode #chan lock set +f [5m#m1,5j#i1]:2 (to remove '3t' parameter)
Do /mode #chan (channel modes will display the first flood parameters, wit the '3t' option)
Additional Information### obatained with Anchat IRC client (Android) so some things may seem weird :)

### Joined the channel
[15:25] Channel modes: [+]
[15:25] Channel created: Tue Feb 21 2017 15:25:44
[15:25] Users: [Total: 1, Ops: 1, Normal: 0]

### Registering the channel
[15:26] -ChanServ-: Channel #bla registered under your account: OmniPresente
[15:26] Join: ChanServ [services.PTirc.org]
[15:26] Mode: [+ao ChanServ ChanServ] by ChanServ
[15:26] Mode: [+ntrPq OmniPresente] by ChanServ

### 1st mlock set
[15:27] -ChanServ-: +f [5m#m1,5j#i1,3t]:2 locked on #bla.
[15:27] Mode: [+f [5j#i1,5m#m1,3t]:2] by ChanServ

### 2nd mlock set
[15:27] -ChanServ-: +f [5m#m1,5j#i1]:2 locked on #bla.
[15:27] Mode: [+f [5j#i1,5m#m1]:2] by ChanServ

### otuput of /mode #bla (actual +f params are [5m#m1,5j#i1]:2)
[15:28] Channel modes: [+Pfnrt [5j#i1,5m#m1,3t]:2] (mlock of +f params doesnt match)

### in Andchat app you can't see me /hoping, but that's what I've done here

[15:28] Mode: [+qo OmniPresente OmniPresente] by ChanServ
[15:28] Channel modes: [+Pfnrt [5j#i1,5m#m1,3t]:2]
[15:28] Channel created: Tue Feb 21 2017 15:25:44
[15:28] Users: [Total: 2, Owners: 1, Admins: 1, Normal: 0]
(1st mlock set shown, not second)
Tagsbug, channel, CHMODE
3rd party modulesdenyban.c by Gottem

Activities

PeGaSuS

2017-02-21 16:57

reporter   ~0019659

just an update: issues happens even without services online

### here it is
16:53:58 <@James_Bond> no services coonected and issue remains
16:54:58 Channel mode set to +f [5j#i1,5m#m1,3t]:2 by James_Bond
16:55:42 <@James_Bond> 1st /mode #chan +f above
16:55:48 Channel mode set to +f [5j#i1,5m#m1]:2 by James_Bond
16:55:57 <@James_Bond> 2nd /mode #chan +f above
16:56:03 Channel mode is +f [5j#i1,5m#m1,3t]:2
16:56:29 <@James_Bond> output of /mode #chan above

PeGaSuS

2017-02-21 21:51

reporter   ~0019661

just another note
(workaround until fixed)

### with services online ###
# remove the +f params from mlock
/cs mode #chan lock del +f [params]:time
# remove +f modes from channel
/mode #chan -f [params]:time
# re-set the new mlock using "add" instead "set"
/cs mode #chan lock add +f [params]:time

### without services ###
# remove +f modes from the channel
/mode #chan -f [params]:time
# re-set the modes
/mode #chan +f [params]:time

### obs ###
re-setting the +f modes with /mode #chan +f [params]:time will lead to the issue reported

syzop

2017-03-06 09:33

administrator   ~0019672

I can reproduce the issue.

syzop

2017-03-06 10:08

administrator   ~0019673

Fixed, thanks for the report!

https://github.com/unrealircd/unrealircd/commit/cb59538309ffeb8a4cc2d6c07f4d86353d781744

[unreal40 cb59538] Fix chanmode +f issue where unsetting parts were not effective. For example: '+f [5j#i1,5m#m1,3n]:3' and then '+f [5j#i1,5m]:3' In that case the '3n' was not removed and still effective, as could be seen by a '/MODE #chan'. Reported by The_Myth (0004883).

Issue History

Date Modified Username Field Change
2017-02-21 16:34 PeGaSuS New Issue
2017-02-21 16:34 PeGaSuS Tag Attached: CHMODE
2017-02-21 16:57 PeGaSuS Note Added: 0019659
2017-02-21 16:59 PeGaSuS Tag Detached: CHMODE
2017-02-21 21:51 PeGaSuS Note Added: 0019661
2017-02-21 21:54 PeGaSuS Tag Attached: bug
2017-02-21 21:54 PeGaSuS Tag Attached: channel
2017-02-21 21:54 PeGaSuS Tag Attached: CHMODE
2017-03-06 08:55 syzop Status new => acknowledged
2017-03-06 09:33 syzop Assigned To => syzop
2017-03-06 09:33 syzop Status acknowledged => confirmed
2017-03-06 09:33 syzop Note Added: 0019672
2017-03-06 10:08 syzop Status confirmed => resolved
2017-03-06 10:08 syzop Resolution open => fixed
2017-03-06 10:08 syzop Note Added: 0019673
2017-03-06 10:09 syzop Fixed in Version => 4.0.12
2017-03-06 10:09 syzop Summary IRCd not properly removing flood parameters after new mode lock set. => ChanMode +f: IRCd not properly removing flood parameters after new mode set.