ПОСЛЕДНИЕ НОВОСТИ
Главная | IT | В OpenBSD запретили использование нулевых символов в shell-скриптах

В OpenBSD запретили использование нулевых символов в shell-скриптах

OpenBSD

Тэо де Раадт (Theo de Raadt) добавил изменение, запрещающее использование символа с нулевым кодом в shell-скриптах, обрабатываемых используемым по умолчанию командным интерпретатором ksh. Наличие нулевых символов в скриптах теперь будет приводить к завершению выполнения с выводом ошибки, за исключением случаев их размещения среди данных, прикреплённых в конце файла следом за кодом. Изменение включено в состав ветки OpenBSD-Current, на базе которой будет сформирован релиз OpenBSD 7.6.

Отмечается, что подобное изменение позволит исключить неопределённость поведения, связанную с обработкой нулевого символа в коде, написанном на языке Си и использующем строки, нулевой байт в которых задействован для индикации конца строки. Изучение обработки нулевого символа в различных оболочках показало, что в каждой из них было выявлен один или несколько случаев, когда нулевой байт во входных данных или содержимом переменных приводил к отличающемуся от других оболочек поведению, например, некоторые оболочки игнорировали его, некоторые заменяли на пробел, а некоторые завершали дальнейший разбор скрипта или прекращали его выполнение.

 

Источник


Теги: