• exec/dyndns.js ircd.js

    From deuce@VERT to CVS commit on Monday, December 22, 2014 17:27:55
    exec dyndns.js 1.9 1.10 ircd.js 1.166 1.167
    Update of /cvsroot/sbbs/exec
    In directory cvs:/tmp/cvs-serv23280

    Modified Files:
    dyndns.js ircd.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