diff --git a/Changelog b/Changelog index 19b8576..2fb3413 100644 --- a/Changelog +++ b/Changelog @@ -1,5 +1,7 @@ [Changes 1.2c01] +* Ensure add_socketread() doesn't leak file descriptors. (caf) + * Fix listing bans on local channels (/BANS &channel). (flashback) * Fix unbanning by number (/UNBAN #channel #number). (caf) diff --git a/source/misc.c b/source/misc.c index fd4c47a..d16337e 100644 --- a/source/misc.c +++ b/source/misc.c @@ -3514,7 +3514,11 @@ int BX_add_socketread(int s, int port, unsigned long flags, char *server, void ( set_socket_read(&rd, &rd); } if (s >= FD_SETSIZE) + { + yell("File descriptor limit reached, dropping new socket."); + close(s); return -1; + } if (s > sock_manager.max_fd) sock_manager.max_fd = s; sock_manager.count++;