]> git.ipfire.org Git - thirdparty/bind9.git/commit
Disable udp recvmmsg support on systems with MUSL libc
authorOndrej Sury <ondrej@isc.org>
Wed, 12 Jan 2022 23:04:57 +0000 (00:04 +0100)
committerOndřej Surý <ondrej@isc.org>
Thu, 13 Jan 2022 18:06:39 +0000 (19:06 +0100)
commit287ea095f153e05fd0e45c34d4046cea4786f6fa
tree3654293c2651c27d1fbdee785093be0513b06e89
parent73707250088cecf3324a9bd105b5f52324e3485a
Disable udp recvmmsg support on systems with MUSL libc

The Linux kernel diverts from the POSIX specification for two members of
struct msghdr making them size_t sized (instead of int and socklen_t).
In glibc, the developers have decided to use that.  However, the MUSL
developers used padding for the struct and kept the members defined
according to the POSIX.

This creates a problem, because libuv doesn't use recvmmsg() library
call where the padding members are correctly zeroed and instead calls
the syscall directly, the struct msghdr is passed to the kernel with
enormous values in those two members (because of the random junk in the
padding members) and the syscall thus fail with EMSGSIZE.

Disable udp recvmmsg support on systems with MUSL libc until the libuv
starts zeroing the struct msghdr before passing it to the syscall.
configure.ac