Отлаживал урезанный вариант ls, нашёл неслабую ошибку в библиотеке. Файл readdir.c должен оканчиваться так:
Раньше обнулялся байт по смещению len-1, в результате портилась цепочка свободной памяти.Код:strncpy(buf->d_name, (char *) direntry.d_name, len - 2); buf->d_name[len - 2] = 0; return buf;
Прикладываю также свои варианты ssh и ls. Шелл на пару Кб больше, чем у SfS, зато функциональность не пострадала. В ls закомментировал сортировку и вывод времени.




Ответить с цитированием