From: Rich Felker Date: Fri, 1 Nov 2019 02:55:39 +0000 (-0400) Subject: fix x32 msghdr struct by removing x32 bits/socket.h X-Git-Tag: v1.2.0~70 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=573a4d2d597ba15435ffdf0f2d8bea1058e7b795;p=oweals%2Fmusl.git fix x32 msghdr struct by removing x32 bits/socket.h being that it contains pointers and (from the kernel perspective, which is wrong) size_t members, x32 uses the 32-bit version of the structure, not a half-32-bit, half-64-bit layout like we had here. the x86_64 definition was inadvertently copied when x32 was first added. unlike errors in the opposite direction (missing padding), this error was not easily detected breakage, because the layout of the commonly used initial subset of members still matched. breakage could only be observed in the presence of control messages or flags. --- diff --git a/arch/x32/bits/socket.h b/arch/x32/bits/socket.h deleted file mode 100644 index a4c89f3d..00000000 --- a/arch/x32/bits/socket.h +++ /dev/null @@ -1,16 +0,0 @@ -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; -};