QEMU ignores all but the first control message sent over a Unix socket
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
QEMU |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
I've written a test program that sends both an SCM_CREDENTIALS and an SCM_RIGHTS cmsg in the same sendmsg call. On native x86-64, armv6 and armv7 Linux, this works as expected (the recvmsg receives both control messages). On QEMU (both qemu-x86_64 and qemu-arm), only the first message is received.
I've traced the problem back to a glibc bug: https:/
This means that writing control messages into an uninitialized buffer makes CMSG_NXTHDR erroneously return NULL even though there's still space inside the allocated buffer. QEMU's logic inside `target_
The test program I used can be found here: https:/
Changed in qemu: | |
status: | Fix Committed → Fix Released |
Fix has been committed as 1d3d1b23e1c8f52 ec431ddaa8deea1 322bc25cbf