diff options
| author | Andreas Schneider <asn@samba.org> | 2014-01-21 09:45:05 +0100 |
|---|---|---|
| committer | Andreas Schneider <asn@samba.org> | 2014-01-21 09:48:56 +0100 |
| commit | b6161d0d94822608053de73b12600661daefabc7 (patch) | |
| tree | 88b10b0eb73ce7e45dafb3f01f777fb75e9c7832 /src | |
| parent | d7e31eddf4016eb3e12151d93d0372e5a7aabef3 (diff) | |
| download | socket_wrapper-b6161d0d94822608053de73b12600661daefabc7.tar.gz socket_wrapper-b6161d0d94822608053de73b12600661daefabc7.tar.xz socket_wrapper-b6161d0d94822608053de73b12600661daefabc7.zip | |
src: Fix setting the temp iovec.
Diffstat (limited to 'src')
| -rw-r--r-- | src/socket_wrapper.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/socket_wrapper.c b/src/socket_wrapper.c index 205d457..2edc8df 100644 --- a/src/socket_wrapper.c +++ b/src/socket_wrapper.c @@ -3342,10 +3342,8 @@ static ssize_t swrap_recvmsg(int s, struct msghdr *omsg, int flags) return libc_recvmsg(s, omsg, flags); } - rc = swrap_recvmsg_before(s, si, omsg, &tmp); - if (rc == -1) { - return -1; - } + tmp.iov_base = NULL; + tmp.iov_len = 0; ZERO_STRUCT(msg); msg.msg_name = (struct sockaddr *)&from_addr; /* optional address */ @@ -3358,8 +3356,10 @@ static ssize_t swrap_recvmsg(int s, struct msghdr *omsg, int flags) msg.msg_flags = omsg->msg_flags; /* flags on received message */ #endif - tmp.iov_base = omsg->msg_iov; - tmp.iov_len = omsg->msg_iovlen; + rc = swrap_recvmsg_before(s, si, &msg, &tmp); + if (rc == -1) { + return -1; + } ret = libc_recvmsg(s, &msg, flags); @@ -3395,6 +3395,9 @@ static ssize_t swrap_sendmsg(int s, const struct msghdr *omsg, int flags) return libc_sendmsg(s, omsg, flags); } + tmp.iov_base = NULL; + tmp.iov_len = 0; + ZERO_STRUCT(msg); msg.msg_name = omsg->msg_name; /* optional address */ msg.msg_namelen = omsg->msg_namelen; /* size of address */ @@ -3406,9 +3409,6 @@ static ssize_t swrap_sendmsg(int s, const struct msghdr *omsg, int flags) msg.msg_flags = omsg->msg_flags; /* flags on received message */ #endif - tmp.iov_base = omsg->msg_iov; - tmp.iov_len = omsg->msg_iovlen; - ret = swrap_sendmsg_before(s, si, &msg, &tmp, &un_addr, &to_un, &to, &bcast); if (ret == -1) return -1; |
