parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

bug в 3.4.2? untaint

as 28.06.2012 09:09

В некоторых проектах появился баг (?) с taint/untaint:

Есть файл-шаблон template.shtml:
<html>
<body>
^common:showtext[]
</body>
</html>

Шаблон обрабатывается через ^process[]:
$f[^file::load[text;template.shtml]]
^process{^untaint[as-is]{$f.text}}

Есть класс с процедурой вывода текста common.p:
@showtext[]
$result[^string:sql[...]]

Суть бага - в шаблон перестаёт подставляться текст из @showtext - вместо текста выводится "пробел".

Если в шаблоне template.shtml дописать untaint - текст начинает выводиться - вот так работает:
<html>
<body>
^untaint[as-is]{^common:showtext[]}
</body>
</html>

А если untaint сделать в процедуре - не работает:
@showtext[]
$result[^untaint[as-is]{^string:sql[...]}]

Такое ощущение, что текст, возвращаемый процедурой помечается "грязным", и внутри процедуры это невозможно изменить - только вне.

* Баг (?) наблюдается не во всех случаях: например, на сайте три колонки, одна выводится, две нет - процедура одинаковая.