[sisyphus] I: mc 4.8.16-alt1
Andrew Borodin
borodin на zarya-k.ru
Чт Мар 17 16:36:44 MSK 2016
On Wed, Mar 16, 2016 at 11:00:48AM +0400, Sergey wrote:
> On Tuesday 15 March 2016, Michael Shigorin wrote:
> > > А вот что раньше не работало...
> > > В списке изменений есть такой момент:
> > > Add mc.ext patterns for initramfs / initrd (#3115)
> > > На наших initrd mc сегфолтится.
> > Тоже угу (у нас там cpio.gz).
> Завалялся initrd-2.6.18-ovz-rhel-alt2.M40.4.img. Этот открывается.
> Повесил http://www.midnight-commander.org/ticket/3621
Сегфотл получается из-за разыменования NULL. Это бага сама по
себе -- такая ситуация должна обрабатываться. Интересно, откуда
этот NULL берётся.
$ zcat initrd-3.14.64-std-def-alt0.M70P.1.img | cpio -tiv | grep proc
drwxr-xr-x 2 root root 0 Mar 14 09:40 ./proc
lrwxrwxrwx 1 root root 13 Mar 14 09:40 ./etc/mtab -> /proc/mounts
cpio: Из имён членов удаляются начальные `/'
19599 блоков
lrwxrwxrwx 1 root root 10 Mar 14 09:40 proc/kcore -> /dev/core
lrwxrwxrwx 1 root root 8 Mar 14 09:40 proc/self/fd -> /dev/fd
lrwxrwxrwx 1 root root 11 Mar 14 09:40 proc/self/fd/0 -> /dev/stdin
lrwxrwxrwx 1 root root 12 Mar 14 09:40 proc/self/fd/1 -> /dev/stdout
lrwxrwxrwx 1 root root 12 Mar 14 09:40 proc/self/fd/2 -> /dev/stderr
Сегфолтится из-за ссылки proc/self/fd/0 -> /dev/stdin.
Поскольку proc/self/fd -> /dev/fd, то есть ссылка, находящаяся в
архиве, указывает на файл на реальной файловой системе, а не на
файл в том же архиве, при заходе в архив она получается висящей.
Насколько я понимаю, mс не умеет ссылки между разными vfs, или
умеет, но как-то ограниченно (vfs вообще самая сложная и
малопонятная часть mc). Соответсвенно, разрешить ссылку proc/self/fd/0
не представляется возможным.
В mc я, конечно, этот баг исправлю, но насколько корректно так
генерировать initrd, сказать не берусь. Возможно, что тут всё и
нормально.
Сергей, а что находится в initrd-2.6.18-ovz-rhel-alt2.M40.4.img?
--
С уважением
А. Бородин.
Подробная информация о списке рассылки Sisyphus