View Issue Details

IDProjectCategoryView StatusLast Update
0004025unrealircdpublic2015-08-08 16:59
ReporterLEthaLity Assigned Tosyzop  
PrioritynormalSeveritytweakReproducibilityalways
Status closedResolutionno change required 
Product Version3.2.9-RC1 
Summary0004025: multiple @'s in mode strings and their strange results.
DescriptionCouldn't seem to find this bug already existing; but adding an extra @ to a command eg b,e,I totally alters the string, I think InspIRCd strips the second one.
Steps To Reproduce/mode #Channel +b *!*@btcentralplus.com@
Will result in a ban on *!*lplus.com@*
Tested and reproduced on b,e,I also
3rd party modules

Activities

argvx

2011-06-23 10:58

reporter   ~0016674

Confirmed, probably bug in clean_ban_mask() + trim_str() functions

syzop

2011-06-24 20:54

administrator   ~0016675

If you set +b *!<long string>@etcetc the IRCd will shorten the usermask/ident (<long string> is considered the usermask) while still making it match.

Ex: *[email protected] becomes *!*[email protected] (from the top of my head).
With multiple @'s it's no difference, except that it seems the ircd assumes the last '@' is the nick!ident@host separator... which is probably correct, not sure.

In either case, setting a regular ban with multiple @'s makes no sense as it will never match anyway, so does it really matter? :P

LEthaLity

2011-06-26 23:42

reporter   ~0016676

but btcentralplus.com becoming *!*lplus.com@* isn't correct, yes it won't match, but it would make more sense to ignore the second @ and add the ban as expected eg. *!*@btcentralplus.com

ohnobinki

2011-06-27 04:16

reporter   ~0016677

How is unrealircd supposed to read your mind? If the ban's not valid, there's no point in supporting it. If, however, it was somehow allowed for usernames or hostname to have `@' in them (which unrealircd prevents from happening at all AFAIK), then there'd be a reason to do something special if there are multiple `@'s in a ban mask.

LEthaLity

2011-06-27 08:01

reporter   ~0016678

*sigh* Not supporting something would result in "nothing" or an error message... Not a "hey let's just f*^k up what I was given and place an incorrect ban that doesn't match", no?

Unreal:
/mode #Channel +b *!*@616667F3.CCD77B85.B52B818A.IP@
-[06:56:49]- * LEthaLity sets mode: +b *!*2B818A.IP@*

InspIRCd:
The same ban will result in -[06:58:02]- * LEthaLity sets mode: +b *!*@616667F3.CCD77B85.B52B818A.IP
At least that's not changing what we have given it..
I'm talking about common sense and the expected behaviour, not debating how someone would be stupid enough to add a second @ in the first place..

katsklaw

2011-07-12 21:58

reporter   ~0016682

Last edited: 2011-07-13 15:08

I must second LEthaLity on this. Unreal should parse from left to right and ignore the second @ since the first @ should delimit the string separating user from host. By RFC1413 a @ cannot be in the username field as it's a token character nor by RFC952 for the hostname field anyway do so why assume the second one is correct?? By doing this you aren't reading minds, you are following established standards.

nick -> ! <-> user <-> @ <-> host <ignore extra data>

After parsing the banmask, if this leaves the user with an undesired ban, then it is the users responsibility to correct it, not that it matters because any u@h mask with 2 @'s is invalid anyway.

syzop

2012-12-15 20:57

administrator   ~0017268

I agree it should parse from left to right, current behavior is odd, I agree.
If anyone posts a patch to fix this behavior then feel free to do so.

Still, when you ask UnrealIRCd to add a ban which will never match, don't be surprised if it adds... an ban which will never match! ;)

Issue History

Date Modified Username Field Change
2011-06-22 20:39 LEthaLity New Issue
2011-06-23 10:58 argvx Note Added: 0016674
2011-06-24 20:54 syzop Note Added: 0016675
2011-06-26 23:42 LEthaLity Note Added: 0016676
2011-06-27 04:16 ohnobinki Note Added: 0016677
2011-06-27 08:01 LEthaLity Note Added: 0016678
2011-07-12 21:58 katsklaw Note Added: 0016682
2011-07-12 22:05 katsklaw Note Edited: 0016682
2011-07-12 22:05 katsklaw Note Edited: 0016682
2011-07-13 15:08 katsklaw Note Edited: 0016682
2012-12-15 20:57 syzop Note Added: 0017268
2012-12-28 17:23 syzop Severity minor => tweak
2015-08-08 16:58 syzop Status new => closed
2015-08-08 16:59 syzop Assigned To => syzop
2015-08-08 16:59 syzop Resolution open => no change required