Ошибка в OpenSSL нарушила работу некоторых приложений openSUSE Tumbleweed после обновления
Обновление OpenSSL до версии 1.1.1b в репозитории openSUSE Tumbleweed привело к нарушению работоспособности некоторых приложений, связанных с libopenssl и использующих русскую или украинскую локали. Проблема появилась после внесения в OpenSSL изменения в обработчик буфера сообщений об ошибках (SYS_str_reasons). Буфер был определён в 4 килобайта, но этого оказалось недостаточно для некоторых юникод-локалей.
Вывод strerror_r, используемый для заполнения буфера, для русской локали составляет 6856 байт, а для украинской — 7000. В коде OpenSSL изначально была проверка на переполнение, но она при обрезании хвоста учитывала размер на один байт больше фактического значения, что приводило к однобайтовому переполнению и краху при загрузке слишком длинных расшифровок кодов ошибок.
В настоящее время уже подготовлено исправление, но оно ещё не принято. Чтобы откатиться до предыдущей стабильной версии (OpenSSL 1.1.0h) можно выполнить команды:
sudo zypper in tumbleweed-cli sudo tumbleweed init sudo tumbleweed switch 20190514 sudo zypper ref && sudo zypper dup && sudo zypper inr
© OpenNet