[PATCH v4 0/3] Fix {recv,send}{m}msg standard compliance (BZ#16919)
Florian Weimer
fweimer@redhat.com
Wed Jun 8 08:36:00 GMT 2016
On 03/28/2016 04:33 PM, Adhemerval Zanella wrote:
> This patchset fixes BZ#16919, recvmsg standard compliance, where Linux
> and POSIX differs in the msghdr and mmsghdr internal struct sizes.
> The issue is POSIX defines [1] both msghdr.msg_namelen, msghdr.controllen,
> and cmsghdr.cmsg_len as socklen_t, where Linux uses size_t. So for 64-bits
> architectures where size_t is larger sockelen_t it leads to standard
> inconsistence. Linux also added recvmmsg and sendmmsg, which uses a
> composite struct based on msghdr (mmsghdr).
This patchset breaks various network emulation libraries because
applications use the new struct msghdr definition, yet dlsym (RTLD_NEXT,
"recvmsg") picks the compat implementation.
Is this breakage really worth increased standards compliance? I think
we should roll this back before the 2.24 release and simply document the
deviation from POSIX.
Florian
More information about the Libc-alpha
mailing list