Re: Должны ли строки в ngx_str_t->data терминироваться нулевым байтом?

Maxim Dounin mdounin на mdounin.ru
Вс Ноя 21 00:28:24 MSK 2010


Hello!

On Sat, Nov 20, 2010 at 10:50:38PM +0300, Валентин Бартенев wrote:

> Здравствуйте. В первую очередь, хотелось бы услышать официально мнение Игоря 
> Сысоева на эту тему.
> 
> В частности, столкнулся с тем, что значения http заголовков в headers_out от 
> большинства модулей-хэндлеров содержать терминирующий ноль, вот mod_lua иногда 
> возвращает значения без него.
> 
> Это баг конкретно в mod_lua или же, чтобы передать значение заголовка в 
> функцию принимающую обычную си-строку, мне нужно обязательно заведомо 
> позаботиться о добавлении \0 в модуле-фильтре?
> 
> А также в общем случае, какая практика в nginx будет наиболее правильной? 
> Всегда ожидать, что в структуре ngx_str_t содержится обычная си-строка или 
> лучше на это и не надеяться?

Присутствие 0 гарантируется только в некоторых специфических 
случаях (e.g. при парсинге конфига переданные в обработчик 
директивы аргументы всегда терминированы 0'м).  В общем случае 0'я 
нет.

Maxim Dounin



Подробная информация о списке рассылки nginx-ru