В OpenBSD е забранено използването на нулеви символи в shell скриптове

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

Отбелязва се, че подобна промяна ще изключи неопределеността в поведението, свързана с обработката на нулев символ в код, написан на C и използващ низове, за които нулевият байт е предназначен да индикира края на низа. Изследването на обработката на нулевия символ в различните обвивки показа, че в тях е намерено едно или повече случаи, в които нулевият байт в входните данни или съдържанието на променливите е довел до поведение, различно от това в другите обвивки. Например, някои обвивки го игнорираха, други го заменяха с интервал, а трети прекратяваха по-нататъшния анализ на скрипта или прекратяваха неговото изпълнение.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster