Что означает код возврата ядра macOS 52 (KERN_INSUFFICIENT_BUFFER_SIZE)?

 
Также может означать:
КонстантаТипОС
ERROR_DUP_NAMEОшибка WindowsWindows
EBADEerrnoLinux
ENETRESETerrnomacOS
EXFULLerrnoSolaris
CACHE_MANAGERКод BSODWindows
Предыдущий Следующий
KERN_POLICY_STATIC KERN_DENIED

KERN_INSUFFICIENT_BUFFER_SIZE

KERN_INSUFFICIENT_BUFFER_SIZE означает, что буфер, предоставленный для результата Mach, меньше объёма данных, который интерфейс должен вернуть. Это несоответствие ёмкости на границе API, а не признак исчезновения целевого объекта или отсутствия поддержки самой операции.

Правильное восстановление зависит от контракта размера конкретной функции. Некоторые интерфейсы позволяют сначала запросить или получить требуемый размер, другие используют фиксированные структуры или ограничения. Не предполагайте, что каждый API при ошибке обновляет входной/выходной параметр длины; перед перераспределением буфера и повтором изучите контракт функции.

Безопасная схема обработки

  • Зафиксируйте предоставленную ёмкость, возвращённый или ожидаемый размер и предположения о размере элемента.
  • При преобразовании количества элементов в длину в байтах используйте арифметику с проверкой переполнения.
  • Перед вызовом инициализируйте все поля размера точно так, как требует API.
  • Повторяйте вызов только после подтверждения идемпотентности операции либо того, что неудачный вызов не потребил и не передал состояние.

Ссылки


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