parser

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

 

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

Ответ

G_Z 16.05.2008 11:03

Ну, по коментарию и тексту ошибки — к тому, кто его писал.

Как показал эксперимент, ругань идёт на те пробельные символы, которые лежат в junction.
Т.е., выходит, что они присвоены не напрямую, а получены в результате исполнения кода.
Что означает их окраску через taint.
В результате это уже не пробельные символы, а неопределённо «грязные» данные из внешнего источника.

Т.о., поведение верное.

Примеры.
Код с ошибкой:
@update_last_request_time[][result]
	^self.db{
		^void:sql{UPDATE $TABLES.SESSION SET `last_request_time` = NOW() WHERE `session_id` = '$session_id'}	
	}
Код без ошибки:
@update_last_request_time[][result]
	^taint[as-is][^self.db{
		^void:sql{UPDATE $TABLES.SESSION SET `last_request_time` = NOW() WHERE `session_id` = '$session_id'}	
	}]
Я бы написал по-другому и забыл об ошибке:
@update_last_request_time[]
^self.db{
	^void:sql{UPDATE $TABLES.SESSION SET `last_request_time` = NOW() WHERE `session_id` = '$session_id'}	
}

$result[]