Комментарии 5
Хех, ну главное чтобы к защите ядра напрямую (так же люто или похоже как в Винде) прилагались всяческие предупреждения)
Хорошее начинание - таки отлавливать те ошибки, на которые раньше закрывали глаза в угоду мнимой производительности.
Проверка границ при обращении к массиву, как мне кажется, должна вообще быть по умолчанию включена. А кому она таки не нужна из соображений производительности, пусть отключает её специальным флагом.
специальным флагом
Ну так это и есть направление к тому, что должно было быть с самого начала.
В юзерленде вообще для 95% кода оптимизации вредны. В ядре требования повыше, но всё равно максимум проверок должен быть по умолчанию, а где не подходят - отключаться контекстными опциями.
Другой вопрос, а что делать в ядре, если проверка показывает нарушение. Проверять каждый чих явно - можно, но тогда стоит вопрос вылавливания кода, который пропустил эту проверку. Неявно значит система исключений, тогда надо развешивать обработчики; а если где-то вылетело необработанное, что, сразу паника? В общем, есть над чем думать.
Исправляют, исправляют, так в конце-концов Паскаль получится. :-) Пятнадцать лет назад, если вдруг (такое возможно?) у меня зависал Линукс, переходил в консоль, снимал задачу и всё ОК. Такое бывало может раз в год. Сейчас Линукс виснет ежемесячно, причём намертво, невозможно ни чего сделать, только перезагрузка. Так что молодцы, знатно улучшают!
Что GCC делает для усиления защиты ядра?