mirror of
https://github.com/checkpoint-restore/criu.git
synced 2026-01-23 02:14:37 +00:00
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/198415449 Signed-off-by: Andrei Vagin <avagin@virtuozzo.com> Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
This commit is contained in:
parent
0367a1f6fe
commit
a6ae38f71b
1 changed files with 4 additions and 2 deletions
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue