Тео де Раадт (Theo de Raadt) добави промяна, която забранява използването на символ с нулев код в shell скриптове, обработвани от по подразбиране командния интерпретатор ksh. Присъствието на нулеви символи в скриптовете вече ще доведе до прекратяване на изпълнението с изходна грешка, освен в случаите, когато те са поставени сред данните, прикрепени в края на файла след кода. Промяната е включена в клона OpenBSD-Current, на базата на който ще бъде формирано издание OpenBSD 7.6.
Отбелязва се, че подобна промяна ще изключи неопределеността в поведението, свързана с обработката на нулев символ в код, написан на C и използващ низове, за които нулевият байт е предназначен да индикира края на низа. Изследването на обработката на нулевия символ в различните обвивки показа, че в тях е намерено едно или повече случаи, в които нулевият байт в входните данни или съдържанието на променливите е довел до поведение, различно от това в другите обвивки. Например, някои обвивки го игнорираха, други го заменяха с интервал, а трети прекратяваха по-нататъшния анализ на скрипта или прекратяваха неговото изпълнение.
Източник: opennet.ru
