workaround another sendmsg kernel bug on 64-bit machines
authorRich Felker <dalias@aerifal.cx>
Fri, 13 Jul 2012 01:37:54 +0000 (21:37 -0400)
committerRich Felker <dalias@aerifal.cx>
Fri, 13 Jul 2012 01:37:54 +0000 (21:37 -0400)
commit96107564e2eabbc13800fe7a7d930b67216d0805
treec46507f195ab69f3ffacfdeca118e337e097849e
parent90e123f4a810d17c6bd8c2102939f6416481427e
workaround another sendmsg kernel bug on 64-bit machines

the kernel wrongly expects the cmsg length field to be size_t instead
of socklen_t. in order to work around the issue, we have to impose a
length limit and copy to a local buffer. the length limit should be
more than sufficient for any real-world use; these headers are only
used for passing file descriptors and permissions between processes
over unix sockets.
arch/arm/bits/socket.h
arch/i386/bits/socket.h
arch/mips/bits/socket.h
arch/x86_64/bits/socket.h
include/sys/socket.h
src/network/sendmsg.c