Ошибка в GCC привела к игнорированию режима выявления проблем с форматироанием строк
Разработчики Fedora Linux столкнулись с заслуживающей внимания проблемой, связанной с ненадлежащей работой предоставляемых в GCC дополнительных проверок для блокирования проблем, вызванных ошибками форматирования строки. Начиная с Fedora 21 пакеты в дистрибутиве собираются с опцией "-Werror=format-security", которая приводит к выводу ошибки в случае выявления компилятором GCC проблем с форматированием строк, которые потенциально могут привести к появлению уязвимостей.
В процессе тестирования новой ветки Fedora, в которой будет задействован GCC 7, релиз которого ожидается в апреле, разработчики столкнулись с ошибкой, из-за которой флаг "-Werror=format-security" игнорировался при определенном стечении флагов, передаваемых компилятору. В итоге возникла ситуация когда массовая пересборка всех пакетов проходила без ошибок, но фактически сборка ряда пакетов должна была завершиться ошибкой, чего не произошло и проблемы с форматированием строк в данных пакетах могли остаться незамеченными.
Проблема всплыла только после внесения в GCC 7 изменения, исправляющего ошибку разбора параметров командной строки (одновременное указание "-Werror=format-security" и "-Wall" или "-Wformat" приводило к игнорированию "-Werror=format-security"). При обновлении GCC 7 некоторые пакеты перестали собираться и уполномоченным разработчикам пришлось в экстренном порядке вносить правки (как правило замена printf(variable) на printf("%s", variable)), не дожидаясь реакции мэйнтейнеров.
Дополнительно можно отметить решение отложить альфа-выпуск Fedora 26 на одну неделю в связи с невыполнением критериев качества. В частности, в репозитории остаются неисправленными 4 проблемы, которые отнесены к категории блокирующих выпуск: проблемы с настройкой ssh-ключей в cloud-init, сбой в запуске gnome-initial-setup, если в инсталляторе не был добавлен пользователь, крах пакета с ядром на Allwinner SoC, проблемы с настройкой FreeIPA в инсталляторе. В качестве новой даты релиза Fedora 26 названо 20 июня, вместо изначально запланированного 6 июня.