| Предыдущий | Следующий |
| ECONNABORTED | EALREADY |
ENOPOLICY
ENOPOLICY в Darwin
В Darwin значение 103 (ENOPOLICY) означает: имя или идентификатор политики Darwin не зарегистрированы. Ядро или инфраструктура безопасности не смогли разрешить запрошенную регистрацию политики.
Почему важна платформа
ENOPOLICY относится к Darwin/XNU и не входит в переносимый набор POSIX errno. Если программа использует это имя на другой системе, сначала проверьте слой совместимости или собственное преобразование ошибок; одинаковое числовое значение на другой платформе не обязано иметь тот же смысл.
Что зафиксировать
Запишите API, имя или идентификатор политики, security subsystem и версию Darwin. Для sandbox, MAC framework или другого policy provider важно сохранить исходный исходный статус до того, как библиотека или wrapper преобразует его в errno.
| Сведения | На какой вопрос отвечают |
|---|---|
| Идентификатор или имя политики, регистрирующий компонент, поколение загрузки или сеанса, право (entitlement) и вызываемый API. | Связывают незарегистрированную политику с одним действующим объектом API, а не только с переведённым сообщением. |
| Darwin errno и версия SDK/XNU. | Показывают, возникла ли ошибка в ABI вызывающей стороны, оболочке или поставщике. |
| Результат первого системного вызова или ioctl, а также процесс, поток и экземпляр объекта. | Сохраняет errno до его перезаписи. |
| Контрольный объект той же сборки macOS. | Даёт контрольное сравнение на той же платформе. |
Контрольная проверка
- Перечислите или зарегистрируйте одну известную политику через владеющую инфраструктуру. Отметьте, достигает ли проверка политики той же границы системного вызова или среды выполнения, что и исходная ошибка.
- Немедленно сохраните errno и сравните связанное возвращаемое значение. Если после теста errno изменился, это новая граница, а не иная формулировка той же ошибки.
- Повторите тест с одним контролируемым объектом, сохранив идентификатор и песочницу без изменений. После контроля повторите исходную операцию, чтобы результат оставался относящимся к незарегистрированной политике.
Технические ссылки
- Apple XNU: errno. h — определяет используемое пространство статусов.
- Apple: ошибки системных вызовов intro(2) — описывает границу API или жизненного цикла.
- Apple OSS: исходный код XNU — предоставляет контекст ABI, реализации или протокола.
- The Open Group: errno. h — определяет ограничения переносимости и проверки.
Нужно найти другой код? Найти другой код состояния или ошибки.