Commit a6ae38f7 authored by Andrei Vagin's avatar Andrei Vagin Committed by Pavel Emelyanov

util: zero msghdr structures

musl-libc fixed inconsistency between posix and kernl msghdr structures
by adding pad-s.

It initializes all pad-s before calling recvmsg and sendmsg syscalls.
CRIU calls raw system calls from pie code, so we need to intialize pads too.

In addition, we don't initialize msg_flags and iov_len.

https://github.com/xemul/criu/issues/276

https://travis-ci.org/kolyshkin/criu/builds/198415449Signed-off-by: 's avatarAndrei Vagin <avagin@virtuozzo.com>
Signed-off-by: 's avatarPavel Emelyanov <xemul@virtuozzo.com>
parent 0367a1f6
......@@ -50,7 +50,8 @@ static int *scm_fdset_init(struct scm_fdset *fdset, struct sockaddr_un *saddr,
int send_fds(int sock, struct sockaddr_un *saddr, int len,
int *fds, int nr_fds, void *data, unsigned ch_size)
{
struct scm_fdset fdset;
/* In musl_libc the msghdr structure has pads which has to be zeroed */
struct scm_fdset fdset = {};
int *cmsg_data;
int i, min_fd, ret;
......@@ -73,7 +74,8 @@ int send_fds(int sock, struct sockaddr_un *saddr, int len,
int __recv_fds(int sock, int *fds, int nr_fds, void *data, unsigned ch_size, int flags)
{
struct scm_fdset fdset;
/* In musl_libc the msghdr structure has pads which has to be zeroed */
struct scm_fdset fdset = {};
struct cmsghdr *cmsg;
int *cmsg_data;
int ret;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment