mirror of
git://git.musl-libc.org/musl
synced 2024-12-16 03:35:06 +00:00
96107564e2
the kernel wrongly expects the cmsg length field to be size_t instead of socklen_t. in order to work around the issue, we have to impose a length limit and copy to a local buffer. the length limit should be more than sufficient for any real-world use; these headers are only used for passing file descriptors and permissions between processes over unix sockets.
19 lines
268 B
C
19 lines
268 B
C
struct msghdr
|
|
{
|
|
void *msg_name;
|
|
socklen_t msg_namelen;
|
|
struct iovec *msg_iov;
|
|
int msg_iovlen, __pad1;
|
|
void *msg_control;
|
|
socklen_t msg_controllen, __pad2;
|
|
int msg_flags;
|
|
};
|
|
|
|
struct cmsghdr
|
|
{
|
|
socklen_t cmsg_len;
|
|
int __pad1;
|
|
int cmsg_level;
|
|
int cmsg_type;
|
|
};
|