git.samba.org
/
samba.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
18717ca
)
tsocket: only copy the specific part of sockaddr*
author
Stefan Metzmacher
<metze@samba.org>
Wed, 23 Dec 2009 18:34:32 +0000
(19:34 +0100)
committer
Karolin Seeger
<kseeger@samba.org>
Mon, 17 May 2010 07:50:19 +0000
(09:50 +0200)
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
)
lib/tsocket/tsocket_bsd.c
patch
|
blob
|
history
diff --git
a/lib/tsocket/tsocket_bsd.c
b/lib/tsocket/tsocket_bsd.c
index 6f6b4229f9f8cc632daeb2d460e867f13f20258b..c44ba4e714fe2735bd787003e4b468d918a0b850 100644
(file)
--- 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: