В BSD исправили 25-летний баг
Баг, которому без малого 25 лет, был недавно замечен в исходниках BSD и исправлен. Он был найден при расследовании краша samba при попытке доступа к директориям на smb-хосте. Это происходило из-за ошибки в механизме доступа к директориям в BSD, которая тянется еще с 4.2BSD. Баг до сегодняшнего времени оставался незаметным из-за workaround, который ранее добавили в samba, а в последних портах OpenBSD и FreeBSD убрали, из-за чего баг и вылез. Исправление оказалось до смешного простым - _readdir_unlocked() не должно было пропускать директории с inode, выставленным в 0, если его вызывает __seekdir().
Поздравляем BSD'шников с этой замечательной новостью!
>>> Подробности