X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/c80be1ec80c25489f06718921caad5194980ef55..22544e37fb6840d07e3ccabf35f6d65dc8821c78:/src/listener.c diff --git a/src/listener.c b/src/listener.c index cc8f3ae..9e03c12 100644 --- a/src/listener.c +++ b/src/listener.c @@ -552,7 +552,12 @@ accept_ssld(rb_fde_t *F, struct sockaddr *addr, struct sockaddr *laddr, struct L { ssl_ctl_t *ctl; rb_fde_t *xF[2]; - rb_socketpair(AF_UNIX, SOCK_STREAM, 0, &xF[0], &xF[1], "Incoming ssld Connection"); + if(rb_socketpair(AF_UNIX, SOCK_STREAM, 0, &xF[0], &xF[1], "Incoming ssld Connection") == -1) + { + ilog_error("creating SSL/TLS socket pairs"); + rb_close(F); + return; + } ctl = start_ssld_accept(F, xF[1], rb_get_fd(xF[0])); /* this will close F for us */ add_connection(listener, xF[0], addr, laddr, ctl); } @@ -568,8 +573,7 @@ accept_callback(rb_fde_t *F, int status, struct sockaddr *addr, rb_socklen_t add if(getsockname(rb_get_fd(F), (struct sockaddr *) &lip, &locallen) < 0) { - /* this shouldn't fail so... */ - /* XXX add logging of this */ + /* this can fail if the connection disappeared in the meantime */ rb_close(F); return; }