summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2021-02-05 19:36:26 +0100
committerAndreas Schneider <asn@samba.org>2021-02-08 19:29:57 +0100
commit3c7ef4751527bd8c93d5431d9f1e36c4fe648f3d (patch)
tree8275ec77e5bcf69bdfd2e6c5f82fd05de91e9029
parent13a6aca342120383776251247c72170c142bf017 (diff)
downloadsocket_wrapper-3c7ef4751527bd8c93d5431d9f1e36c4fe648f3d.tar.gz
socket_wrapper-3c7ef4751527bd8c93d5431d9f1e36c4fe648f3d.tar.xz
socket_wrapper-3c7ef4751527bd8c93d5431d9f1e36c4fe648f3d.zip
swrap: fix invalid read in swrap_sendmsg_unix_scm_rights()
Here the fds_out array is larger than the fds_in array, so we can only copy the fds_in array using size_fds_in, leaving the last slot of fds_out untouched, which is filled by fds_out[num_fds_in] = pipefd[0] later. Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Andreas Schneider <asn@samba.org>
-rw-r--r--src/socket_wrapper.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/socket_wrapper.c b/src/socket_wrapper.c
index 43a5892..e8c2d6c 100644
--- a/src/socket_wrapper.c
+++ b/src/socket_wrapper.c
@@ -5450,7 +5450,7 @@ static int swrap_sendmsg_unix_scm_rights(const struct cmsghdr *cmsg,
*new_cmsg = *cmsg;
__fds_out.p = CMSG_DATA(new_cmsg);
fds_out = __fds_out.fds;
- memcpy(fds_out, fds_in, size_fds_out);
+ memcpy(fds_out, fds_in, size_fds_in);
new_cmsg->cmsg_len = cmsg->cmsg_len;
for (i = 0; i < num_fds_in; i++) {