| Previous | Next |
| MACH_RCV_INVALID_NOTIFY | MACH_RCV_PORT_DIED |
MACH_RCV_INVALID_DATA
The receive-side inline-data buffer is not usable for this operation
MACH_RCV_INVALID_DATA is the receive counterpart for a bogus message buffer used for inline data. It identifies the caller-supplied receive storage, not an invalid payload produced by the peer. In particular, it differs from MACH_RCV_TOO_LARGE: an oversized buffer result can occur with valid storage, whereas this status says the buffer itself could not be used for the receive path.
A receive buffer must stay valid for the system call and match the selected receive API. Confusion is common when a wrapper switches between mach_msg and mach_msg_overwrite, reuses a send buffer after its lifetime ends, or passes a size that no longer matches the actual allocation.
What to inspect
- Verify that the pointer is writable, alive for the complete operation, and paired with the correct receive-size value.
- Record whether a separate receive buffer was supplied and whether the operation requested an overwrite or scatter receive.
- Check allocation ownership across language boundaries; a valid object reference is not automatically a valid raw receive buffer.
- Handle
MACH_RCV_TOO_LARGEseparately with a documented sizing policy instead of treating every receive error as a buffer-capacity problem.
References
- Apple XNU source: mach/message.h
- Mach Kernel Interface Reference: mach_msg
- GNU Mach Reference Manual: interprocess communication
Looking for a different code? Search another status or error code.
