diff options
author | Stefan Metzmacher <metze@samba.org> | 2009-12-23 19:34:32 +0100 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2010-05-17 09:50:19 +0200 |
commit | 82ee4a2c5a4ba969768156d8bbdfea56cd53a187 (patch) | |
tree | fd97b7f8a2272a0243d741241c34f8bfbf6b8a05 | |
parent | 18717cad039d251ff9b3c4813f6e67911e0ebebc (diff) | |
download | samba-82ee4a2c5a4ba969768156d8bbdfea56cd53a187.tar.gz |
tsocket: only copy the specific part of sockaddr*
This makes sure we fill the unspefic bytes with 0
and have zero termination for sockaddr_un.
metze
(cherry picked from commit 17c804a67593cdb4d8646b5be6b50fddf56b3e27)
Signed-off-by: Stefan Metzmacher <metze@samba.org>
(cherry picked from commit e96605da78f1a0afbaf3b0aedaf7a4730d64d3a5)
-rw-r--r-- | lib/tsocket/tsocket_bsd.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/tsocket/tsocket_bsd.c b/lib/tsocket/tsocket_bsd.c index 6f6b4229f9f..c44ba4e714f 100644 --- a/lib/tsocket/tsocket_bsd.c +++ b/lib/tsocket/tsocket_bsd.c @@ -217,12 +217,16 @@ int _tsocket_address_bsd_from_sockaddr(TALLOC_CTX *mem_ctx, switch (sa->sa_family) { case AF_UNIX: + if (sa_socklen > sizeof(struct sockaddr_un)) { + sa_socklen = sizeof(struct sockaddr_un); + } break; case AF_INET: if (sa_socklen < sizeof(struct sockaddr_in)) { errno = EINVAL; return -1; } + sa_socklen = sizeof(struct sockaddr_in); break; #ifdef HAVE_IPV6 case AF_INET6: @@ -230,6 +234,7 @@ int _tsocket_address_bsd_from_sockaddr(TALLOC_CTX *mem_ctx, errno = EINVAL; return -1; } + sa_socklen = sizeof(struct sockaddr_in6); break; #endif default: |