Reduce effective buffer size per channel input.

This will curb the easy way to trigger a too long line sent to the
server and prevent this error and connection drop.
This commit is contained in:
Christoph Lohmann 2021-12-23 22:11:08 +01:00 committed by Hiltjo Posthuma
parent d9be11ad05
commit cfb3464c6e
1 changed files with 8 additions and 1 deletions

9
ii.c
View File

@ -683,7 +683,14 @@ read_line(int fd, char *buf, size_t bufsiz)
static void
handle_channels_input(int ircfd, Channel *c)
{
char buf[IRC_MSG_MAX];
/*
* Do not allow to read this fully, since commands will be
* prepended. It will result in too long lines sent to the
* server.
* TODO: Make this depend on the maximum metadata given by the
* server at the beginning of the connection.
*/
char buf[IRC_MSG_MAX-64];
if (read_line(c->fdin, buf, sizeof(buf)) == -1) {
if (channel_reopen(c) == -1)