Ошибка в GCC привела к игнорированию режима выявления проблем с форматированием строк

Разработчики Fedora Linux столкнулись с заслуживающей внимания проблемой, связанной с ненадлежащей работой предоставляемых в GCC дополнительных проверок для блокирования проблем, вызванных ошибками форматирования строки. Начиная с Fedora 21 пакеты в дистрибутиве собираются с опцией «-Werror=format-security», которая приводит к выводу ошибки в случае выявления компилятором GCC проблем с форматированием строк, которые потенциально могут привести к появлению уязвимостей.

В процессе тестирования новой ветки Fedora, в которой будет задействован GCC 7 (релиз GCC 7 ожидается в апреле), разработчики столкнулись с ошибкой, вызванной тем, что флаг «-Werror=format-security» игнорировался при определённом стечении обстоятельств. В итоге возникла ситуация когда массовая пересборка всех пакетов проходила без ошибок, но фактически сборка ряда пакетов должна была завершиться ошибкой, чего не произошло и проблемы с форматированием строк в данных пакетах оставались незамеченными.

Проблема всплыла только после внесения в GCC 7 изменения, исправляющего ошибку разбора параметров командной строки (одновременное указание «-Werror=format-security» и «-Wall» или «-Wformat» приводило к игнорированию «-Werror=format-security»). Ошибка присутствует достаточно давно и проявлялась как минимум в ветке GCC 4. При обновлении GCC 7 некоторые пакеты в Fedora перестали собираться и уполномоченным разработчикам пришлось в экстренном порядке вносить правки (как правило замена printf(variable) на printf(«%s», variable)), не дожидаясь реакции мэйнтейнеров.

Дополнительно можно отметить решение отложить альфа-выпуск Fedora 26 на одну неделю в связи с невыполнением критериев качества.
В частности, в репозитории остаются неисправленными 4 проблемы, которые отнесены к категории блокирующих выпуск: проблемы с настройкой ssh-ключей в cloud-init, сбой в запуске gnome-initial-setup, если в инсталляторе не был добавлен пользователь, крах пакета с ядром на Allwinner SoC, проблемы с настройкой FreeIPA в инсталляторе. В качестве новой даты релиза Fedora 26 названо 20 июня, вместо изначально запланированного 6 июня. Напомним, что начиная с Fedora 27 подготовка альфа-выпуска будет упразднена.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.