]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - src/listener.c
Fix crashes when there are no alias blocks in the conf.
[irc/rqf/shadowircd.git] / src / listener.c
index cc8f3aebfd78c1f5329db6629e9b7a1a7e28eb9c..9e03c12dd30c015e2725f4bc000ceaac127a0525 100644 (file)
@@ -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;
        }