This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH v4 0/3] Fix {recv,send}{m}msg standard compliance (BZ#16919)


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]