Что означает код errno 62 (ELOOP)?

 
Также может означать:
КонстантаТипОС
ERROR_NO_SPOOL_SPACEОшибка WindowsWindows
ETIMEerrnoLinux
ETIMEerrnoSolaris
MULTIPROCESSOR_CONFIGURATION_NOT_SUPPORTEDКод BSODWindows
Предыдущий Следующий
ETIME ETIME

ELOOP

Это сбой разрешения пути

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

Это также может быть значимым сигналом безопасности. Код, который должен работать внутри контролируемого каталога, не должен «исправлять» ошибку многократной нормализацией строк и повторными попытками. Используйте API на основе дескрипторов каталогов и флаги обработки ссылок, если они предоставляются API, и записывайте неразрешённый путь вместе с контекстом каталога, использованным для вызова.

Как сузить причину

  • Разрешайте каждый компонент пути и проверяйте символические ссылки, не переходя по ним вслепую.
  • Отличайте цикл ссылок от неожиданно глубокой, но ациклической цепочки: оба случая могут возвращать один и тот же errno.
  • Для операций создания или замены файла проверьте, может ли злоумышленник или другой процесс изменять промежуточные компоненты пути.

Ссылки


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