dadv: (Default)
2011-08-31 11:59 pm
Entry tags:

древний баг fsck_ffs

Недавно во время экспериментов одна из файловых систем FreeBSD на домашнем десктопе у меня повредилась так, что в одном из подкаталогов появился файл с именем нулевой длины, что недопустимо для UFS2: системные вызовы ядра не обрабатывают такие файлы. Оказалось, что fsck_ffs не проверяет эту проблему и поэтому рапортует, что файловая система чиста. Удалить каталог с таким файлом невозможно и т.д.

Пришлось запатчить fsck_ffs, добавив нужную проверку:
http://www.freebsd.org/cgi/query-pr.cgi?pr=160339

Баг сидит в коде FreeBSD с первоначального импорта исходников BSD 4.4 Lite более 17 лет назад. В коде NetBSD и OpenBSD этой проверки тоже нет.

Update: в девятой ветке исправлено 2 сентября и релиз 9.0 будет уже с исправлением. В 7.4-STABLE и в 8.2-STABLE исправлено 16 сентября.