git.samba.org
/
amitay
/
samba.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
f0d59bb
)
socket_wrapper: fix handling of addr and addrlen
author
Stefan Metzmacher
<metze@samba.org>
Wed, 9 Mar 2011 10:46:34 +0000
(11:46 +0100)
committer
Günther Deschner
<gd@samba.org>
Wed, 9 Mar 2011 11:27:25 +0000
(12:27 +0100)
metze
lib/socket_wrapper/socket_wrapper.c
patch
|
blob
|
history
diff --git
a/lib/socket_wrapper/socket_wrapper.c
b/lib/socket_wrapper/socket_wrapper.c
index cd913275f63f8edf0d1aa13b8e104cc410e05bcd..6eb4979d3fc66d1243197b48034f04a679fe99a7 100644
(file)
--- a/
lib/socket_wrapper/socket_wrapper.c
+++ b/
lib/socket_wrapper/socket_wrapper.c
@@
-1538,10
+1538,11
@@
_PUBLIC_ int swrap_accept(int s, struct sockaddr *addr, socklen_t *addrlen)
child_si->peername = sockaddr_dup(my_addr, len);
if (addr != NULL && addrlen != NULL) {
- *addrlen = len;
- if (*addrlen >= len)
- memcpy(addr, my_addr, len);
- *addrlen = 0;
+ size_t copy_len = MIN(*addrlen, len);
+ if (copy_len > 0) {
+ memcpy(addr, my_addr, copy_len);
+ }
+ *addrlen = len;
}
ret = real_getsockname(fd, (struct sockaddr *)(void *)&un_my_addr,