[msan] Allow uninitialized padding in struct msghdr.
llvm-svn: 273204
This commit is contained in:
parent
8b65e86661
commit
843b651398
|
@ -2501,7 +2501,16 @@ INTERCEPTOR(SSIZE_T, recvmsg, int fd, struct __sanitizer_msghdr *msg,
|
|||
#if SANITIZER_INTERCEPT_SENDMSG
|
||||
static void read_msghdr(void *ctx, struct __sanitizer_msghdr *msg,
|
||||
SSIZE_T maxlen) {
|
||||
COMMON_INTERCEPTOR_READ_RANGE(ctx, msg, sizeof(*msg));
|
||||
#define R(f) \
|
||||
COMMON_INTERCEPTOR_READ_RANGE(ctx, &msg->msg_##f, sizeof(msg->msg_##f))
|
||||
R(name);
|
||||
R(namelen);
|
||||
R(iov);
|
||||
R(iovlen);
|
||||
R(control);
|
||||
R(controllen);
|
||||
R(flags);
|
||||
#undef R
|
||||
if (msg->msg_name && msg->msg_namelen)
|
||||
COMMON_INTERCEPTOR_READ_RANGE(ctx, msg->msg_name, msg->msg_namelen);
|
||||
if (msg->msg_iov && msg->msg_iovlen)
|
||||
|
|
|
@ -59,11 +59,13 @@ int main() {
|
|||
#if defined(SENDMSG)
|
||||
struct iovec iov[2] = {{buf, 5}, {buf + 5, 5}};
|
||||
struct msghdr msg;
|
||||
memset(&msg, 0, sizeof(msg));
|
||||
msg.msg_name = &serveraddr;
|
||||
msg.msg_namelen = addrlen;
|
||||
msg.msg_iov = iov;
|
||||
msg.msg_iovlen = 2;
|
||||
msg.msg_control = 0;
|
||||
msg.msg_controllen = 0;
|
||||
msg.msg_flags = 0;
|
||||
#endif
|
||||
|
||||
#if defined(SEND)
|
||||
|
|
Loading…
Reference in New Issue