View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0006602 | unreal | ircd | public | 2026-01-10 12:08 | 2026-01-23 08:46 |
| Reporter | progval | Assigned To | syzop | ||
| Priority | low | Severity | minor | Reproducibility | always |
| Status | resolved | Resolution | fixed | ||
| Product Version | 6.2.1 | ||||
| Fixed in Version | 6.2.3 | ||||
| Summary | 0006602: Invalid channel user limits are normalized to 1 | ||||
| Description | When sending "MODE #chan l :abc" or "MODE #chan l :-1", Unreal converts it to "MODE #chan l :1": https://github.com/unrealircd/unrealircd/blob/1c461db46de2b0d7d0c5b0b1f4e71439170f87e0/src/modules/chanmodes/limit.c#L191-L199 This is inconsistent with other IRCds: Charybdis/Solanum, Ergo, Hybrid/Plexus4, irc2, ircu2/Nefarious ignore the MODE command entirely, while InspIRCd and ngIRCd send ERR_INVALIDMODEPARAM then ignore it too. | ||||
| 3rd party modules | |||||
|
|
I've edited the report slightly to add " l " in it. Yeah... I think you are right and we should just ignore the +l set attempt if atoi() or whatever we use is <= 0 |
|
|
Maybe not terrible important but indeed a good point, I agree. Thanks for bringing it up. Fixed in https://github.com/unrealircd/unrealircd/commit/d413959e576db66e6d9cdc73bbc7f7bd4dc7bf09 commit d413959e576db66e6d9cdc73bbc7f7bd4dc7bf09 (HEAD -> unreal60_dev, origin/unreal60_dev, origin/HEAD) Author: Bram Matthys <[email protected]> Date: Fri Jan 23 08:42:41 2026 +0100 Chanmode +l: when coming from an IRC client, reject <=0 instead of transforming. Reject it with an ERR_INVALIDMODEPARAM, just like we do for +k. I think the higher number transforming is fine, but this <=0 transformation is odd as it almost never is what the user actually intended. In S2S traffic we still transform, as rejecting there is more problematic, (causing a desync) and transforming it there is not a major issue, anyway. Reported by ProgVal in https://bugs.unrealircd.org/view.php?id=6602 |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2026-01-10 12:08 | progval | New Issue | |
| 2026-01-10 12:11 | syzop | Description Updated | |
| 2026-01-10 12:11 | syzop | Description Updated | |
| 2026-01-10 12:13 | syzop | Assigned To | => syzop |
| 2026-01-10 12:13 | syzop | Status | new => acknowledged |
| 2026-01-10 12:13 | syzop | Note Added: 0023588 | |
| 2026-01-23 08:46 | syzop | Status | acknowledged => resolved |
| 2026-01-23 08:46 | syzop | Resolution | open => fixed |
| 2026-01-23 08:46 | syzop | Fixed in Version | => 6.2.3 |
| 2026-01-23 08:46 | syzop | Note Added: 0023600 |