diff options
Diffstat (limited to 'src/or')
-rw-r--r-- | src/or/connection.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/src/or/connection.c b/src/or/connection.c index 41eee7d8b..76b943964 100644 --- a/src/or/connection.c +++ b/src/or/connection.c @@ -746,8 +746,9 @@ create_unix_sockaddr(const char *listenaddress, char **readable_address) */ static connection_t * connection_create_listener(struct sockaddr *listensockaddr, int type, - char* address) + char* address) { + /*XXXX021 this function should take a socklen too. */ connection_t *conn; int s; /* the socket we're going to make */ uint16_t usePort = 0; @@ -814,7 +815,6 @@ connection_create_listener(struct sockaddr *listensockaddr, int type, } #ifdef HAVE_SYS_UN_H } else if (listensockaddr->sa_family == AF_UNIX) { - size_t len; start_reading = 1; /* For now only control ports can be unix domain sockets @@ -835,9 +835,7 @@ connection_create_listener(struct sockaddr *listensockaddr, int type, goto err; } - len = strlen(((struct sockaddr_un *)listensockaddr)->sun_path) + - sizeof(((struct sockaddr_un *)listensockaddr)->sun_family); - if (bind(s, listensockaddr, (socklen_t)len) == -1) { + if (bind(s, listensockaddr, (socklen_t)sizeof(struct sockaddr_un)) == -1) { log_warn(LD_NET,"Bind to %s failed: %s.", address, tor_socket_strerror(tor_socket_errno(s))); goto err; |