ergochat / ergo

A modern IRC server (daemon/ircd) written in Go.
https://ergo.chat/
MIT License
2.27k stars 180 forks source link

Mode response causes 400 error with "Error assembling message for sending" #1021

Closed kylef closed 4 years ago

kylef commented 4 years ago

Triggered from testnet:

:oragono.test 002 kyle :Your host is oragono.test, running version oragono-2.1.0-unreleased
:oragono.test 003 kyle :This server was created Fri, 15 May 2020 12:09:05 UTC
:oragono.test 004 kyle oragono.test oragono-2.1.0-unreleased BioRsE bEeIikmntRslC
:oragono.test 005 kyle AWAYLEN=500 CASEMAPPING=ascii CHANLIMIT=#:100 CHANMODES=beI,k,l,imntEsCR CHANNELLEN=64 CHANTYPES=# ELIST=U EXCEPTS= INVEX= KICKLEN=1000 MAXLIST=beI:60 MAXTARGETS=4 MODES= :are supported by this server
:oragono.test 005 kyle MONITOR=100 NETWORK=OraTestnet NICKLEN=32 PREFIX=(qaohv)~&@%+ RPCHAN=E RPUSER=E STATUSMSG=~&@%+ TARGMAX=NAMES:1,LIST:1,KICK:1,WHOIS:1,USERHOST:10,PRIVMSG:4,TAGMSG:4,NOTICE:4,MONITOR: TOPICLEN=1000 UTF8MAPPING=rfc8265 draft/CHATHISTORY=100 :are supported by this server
C: :kyle!~a@fwdismm6ztsxs.oragono JOIN #test
S: :oragono.test 353 kyle = #test :@kyle
S: :oragono.test 366 kyle #test :End of NAMES list

# set a key with space
C: MODE #test +k :foo bar
S: :kyle!~a@fwdismm6ztsxs.oragono MODE #test +k :foo bar

C: MODE #test
S: :oragono.test 324 kyle #test +knt :foo bar
S: :oragono.test 329 kyle #test 1589735765

C: MODE #test +l 5
S: :kyle!~a@fwdismm6ztsxs.oragono MODE #test +l 5

# error asking for mode
C: MODE #test
S: :oragono.test 400 * :Error assembling message for sending
S: :oragono.test 329 kyle #test 1589735765
slingamn commented 4 years ago

Discussed briefly: the proposed fix is to require that the channel key be valid as a non-final parameter.