exec/load cvslib.js 1.17 1.18 gnatslib.js 1.25 1.26 http.js 1.22 1.23 ircbot_functions.js 1.26 1.27 irclib.js 1.16 1.17 json-client.js 1.27 1.28 salib.js 1.23 1.24
Update of /cvsroot/sbbs/exec/load
In directory cvs:/tmp/cvs-serv23280/load
Modified Files:
cvslib.js gnatslib.js http.js ircbot_functions.js irclib.js
json-client.js salib.js
Log Message:
Explicitly close sockets that fail to connect() in potentially long-running scripts.
If the socket is not close()ed, it results in a socket descriptor leak, and on *nix systems, FD_SET() may corrupt memory outside of the fd_set if a socket descriptor higher than FD_SETSIZE is set.
This manifested itself via ircd.js which called connect() to servers, but never called close(). After many hours, the next socket descriptor was higher than 1024 (default FD_SETSIZE), and resulted in corruption of the private data pointer
in js_socket.c:js_connect()... which in turn resulted in a crash.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ
telnet://vert.synchro.net