Site icon EfmSoft

Что означает код возврата ядра macOS 0x10000008 (MACH_SEND_MSG_TOO_SMALL)?

 
Предыдущий Следующий
MACH_SEND_INTERRUPTED MACH_SEND_INVALID_REPLY

MACH_SEND_MSG_TOO_SMALL

Нарушение контракта структуры и размера

MACH_SEND_MSG_TOO_SMALL указывает на несоответствие между буфером, переданным mach_msg, аргументом send_size и структурой сообщения, объявленной заголовком и дескрипторами. Ошибка может возникнуть до начала обработки сообщения ядром, если объявленный размер отправки меньше минимального заголовка, но также может обозначать конечный элемент, выходящий за объявленную границу сообщения при обработке дескрипторов.

Поэтому простое увеличение стекового буфера на несколько байтов не является надёжным исправлением. Размер сообщения должен охватывать заголовок, счётчик тела сложного сообщения, каждый дескриптор с его фактическим размером ABI, встроенную полезную нагрузку и требуемое естественное выравнивание. В 64-разрядных сборках особенно опасно предполагать, что все варианты дескрипторов имеют одинаковую структуру.

Что проверить

Ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.

Exit mobile version