From: Stefan Metzmacher Date: Wed, 23 Dec 2009 18:31:41 +0000 (+0100) Subject: tsocket: allow AF_UNIX sockaddrs smaller than sizeof(sockaddr_un) X-Git-Url: http://git.samba.org/?a=commitdiff_plain;h=4784c8c3bea98592486ca973d57c99671eb68cb2;p=metze%2Fsamba%2Fwip.git tsocket: allow AF_UNIX sockaddrs smaller than sizeof(sockaddr_un) This is needed as getpeername() truncates the length to 2 if the peer socket has no name. metze --- diff --git a/lib/tsocket/tsocket_bsd.c b/lib/tsocket/tsocket_bsd.c index 1c1e58099bf0..22393bf02f1f 100644 --- a/lib/tsocket/tsocket_bsd.c +++ b/lib/tsocket/tsocket_bsd.c @@ -210,12 +210,13 @@ int _tsocket_address_bsd_from_sockaddr(TALLOC_CTX *mem_ctx, struct tsocket_address *addr; struct tsocket_address_bsd *bsda; + if (sa_socklen < sizeof(sa->sa_family)) { + errno = EINVAL; + return -1; + } + switch (sa->sa_family) { case AF_UNIX: - if (sa_socklen < sizeof(struct sockaddr_un)) { - errno = EINVAL; - return -1; - } break; case AF_INET: if (sa_socklen < sizeof(struct sockaddr_in)) {